\centerline{\bf dbPublisher}
\smallskip\noindent
Two products have appeared on the market in the last year or so
which enable the user (naive or not-so naive -- see below) to extract data from
a database or spreadsheet and automatically typeset (or DTP) it. The two
products are called, rather confusingly, dbPublisher (distributed in the UK by
Migent) and  DataBase Publisher (written and distributed by the Graphics
Technology Group -- GTG). So what is the difference between them and why review
the former in \Texline?  

DataBase Publisher is intended to be an interface
between dBase and either Ventura or Pagemaker. It will also pick up from
sequential \ascii\ files (and this is how one handles data from other databases)
and GTG will write output filters to other DTP\slash typesetting packages; they
presumably could write one for \TeX. In other words DataBase Publisher has no
formatting or output facilities of its own. dbPublisher, on the other hand does
everything -- it makes it possible to pick up data directly from a whole range of
databases, spreadsheets and word-processors (as well as sequential \ascii\ files)
and it pipes this data (I use a \unix\ term even though the package only runs
under DOS, because there is a direct transfer from one process to the
next), through a generic mark-up interpreter, to (surprise, surprise!) \TeX{}.
It does take some time to realise that \TeX{}  is the formatter used in this package
(unless you recognise the otherwise uninterpretable error messages), because it
is only hidden away in one of the Appendices of the manual, describing a form of
generic coding, that suddenly one sees 

{\narrower
\noindent
\hbox{``|<literal>... | {\tt \TeX\ Commands} |</literal>|}\hfil\break 
 Allows passing \TeX{}  commands
directly through \SGML\ mode. If you know what \TeX{}  is you will be pleased. If
you are not familiar with \TeX{}, this command should not be used. It is
included only for those wonderful lunatic-fringe folks who have mastered \TeX{} 
macros (you know who you are).''
\smallskip}
So there it is and incidentally there is
also a \PS\ {\tt Passthrough} command `for certifiable \PS\ addicts
only'.    

That is the good side of dbPublisher, in other words, at least in
theory, you have the potential to anything that \TeX{}  can do, with a powerful 
data extraction and sort facility on the front. The problems come once one
starts to use it. The first problem I had (and still have) is that dbPublisher
uses its own graphics interface (one of the many produced before Windows became
standard). This is different enough from Windows to be confusing at times (when
do you click and when do you double-click?) and for my system, an ACER 386 with
an Adaptec controller, was disastrous because the controller uses the same
interrupts as the windowing software and every time I tried to preview a file,
the system rebooted! I still have not solved this problem and changing the
Adaptec interrupts seems to be the only way, which I am not keen on doing. So
the following comments are based on work on a client's system (a Tandon, where
everything did work properly).  

DataBase Publisher has a very easy to use
interface, using Windows, where one clicks on options or clicks, holds and moves
fields into the order required; everything is graphical and one can achieve
results very quickly. With dbPublisher, however, the interface is partly
graphical and partly character-based. And it is difficult to learn. The manual
takes one through a series of exercises, which are fine if that is what you want
to do, but if what you want to do is slightly different, then it may take quite
a while to work out how to achieve it. The selection and formatting commands are
interspersed and can be accessed in most cases either by typing in what you
want, although you will probably have to bring up a 4GL-type menu to do it, or
by placing boxes on the graphically displayed page. To try and summarize the
procedure in a review is almost impossible; after all the manual does not
succeed very well in over 200 pages.  

Having been fairly critical, I should say
that I believe that dbPublisher is an immensely powerful package, once one has
worked out what to do. I managed to produce a directory using it, and more
recently a mailmerge program which works directly from the database (Rbase in
this case) with virtually any selection criterion and the ability to allow for
missing address fields while still starting the salutation line (Dear\dots) at
the same point for window-envelope use. This can obviously be achieved in
other ways, but the final program (once I had worked it out) is really
quite simple. Programs can of course be very complicated, but the
processing times tend to extend; this is fine if you know that everything is
working, but when you are testing a program it can be annoying. One good feature
is that one can test programs on a few database records, so that development
times are reduced (this was not so on the first version). Another good feature
is that you can preview files before printing them (if your system allows it!),
and I would suggest that this is always the way to operate.  

I have not said
anything about how dbPublisher uses \TeX{}.  This is mainly because I am no
\TeX{}pert. Certainly, I have found no problem in getting the typographic output
I wanted; most of the problems I have encountered have been in the selection
side. There is a sample generic file provided, but not a sample \TeX{}  file. It
would be interesting to try to pass a complete \TeX{}  file through dbPublisher
and see if the result is as expected. If only the package would work on my
system\dots\   

In summary, I think that dbPublisher is very good value for
someone who has no DTP program already, but has some programming experience (or
access to someone who has -- runtime versions can be produced). If you are
already running Ventura or PageMaker, then DataBase Publisher is probably a more
practical solution. However, as a \TeX{}  user you would certainly find
dbPublisher interesting, if at times frustrating, to play with and for the right
application it could be just what you want. And if someone would write a good
manual or handbook on the package, then I am sure that it could almost become a
leading contender in the DTP field, unless of course you have an Adaptec
controller! 
\author{David Penfold} 
