Subject Re: Printing to HP Envy printer
From Mervyn Bick <invalid@invalid.invald>
Date Tue, 5 Nov 2019 10:55:43 +0200
Newsgroups dbase.getting-started

On 2019-11-04 12:48 PM, A. Bennett wrote:
> I've been using dBase PLUS v2.01 for many years now, and it does everything I want.  For about three years, during which I purchased a new HP Envy inkjet printer, I had not needed to print any reports from my programs, but now that I do I'm finding the the printer doesn't like them.
> When I go to print a report the Print Setup window gives me the option of 'HP ePrint + JetAdvantage' or 'HP Envy 5000 series PCL-3' or 'Fax'.  The ePrint option appears to do nothing;  the HP Envy option does print, but it's extremely slow, taking over 4 minutes for a single A4 page, and often showing an HP error report that it can't print from dBase PLUS despite having just done so.  My reports are in the format:-
> Do I need to change my programming syntax, download a new driver, or what please?

Back in the days of dBASE for DOS before the days of WYSIWYG printing
streaming text direct to the printer using the ? command was the way to
produce reports.  Most printers had some form of control language which
allowed one to embed sequences of characters headed by the escape
character to give some measure of text formatting.

With the advent of Windows came WYSIWYG printing and printer
manufacturers began to drop the streaming text feature from their
printers.  PCL (I think 6 is the highest)  was/is HP's control language
so the Envy range of printers looks as if it still retains the ability
to handle streamed text using an appropriate driver.  It should not,
however, take 4 minutes to stream a page of text.  What may be happening
is that the printer can't actually handle streamed text itself and the
driver is converting the stream to a WYSIWYG page before submitting it
to the printer.

One thing you can try is to install the Windows generic text printer
driver.  How one does this depends on the version of Windows so I
suggest you Google this.

While the generic text printer driver may speed up the printing a bit
(if it actually works with the HP Envy printer) it still leaves you with
a very spartan looking report.  It will be a bit of a learning curve but
getting to know the dBASE report designer as Alex has suggested is well
worth the effort.

Using the report designer is far less intuitive than, say, using the
form designer but it's not difficult, just different.  Ken Mayer's dBASE
Report Book is a worthwhile investment if you are going to be creating
more than simple table listings.

To get started though you should look at the reports section of the
dBASE Tutorial.
  Before you even start reading the tutorial you should follow the two
links in the Additional Reading section which lead to two articles in
the dBASE knowledgebase..

The tutorial is designed so that each step builds on what has gone
before.  This means you may not be able to actually build the reports in
the tutorial but you should be able to glean enough information to be
able to use the report designer for a straightforward report.

Essentially all that it takes is open a new report, drag a table from
the Navigator onto the report, pick fields from the Field Palette and
place them in the appropriate places on the pink detail band.  Don't use
the green or blue bands.  Pick a text object from the Components Palette
and place it on the white page template area as a heading.   Add the
heading to the text object's text property and you're basically done.
The rest is mainly "making pretty" i.e setting fonts, fontsizes,
colours, lines and so on. :-)

In nine cases out of ten you will probably not need to use the green
reportgroup header band anyway.  My advice is to use the Inspector to
set it's height property to zero the moment you open the report
designer.  I have two custom reports on which I base all my reports.
One for portrait layout and one for landscape layout.  In both cases the
reportgroup headerband height is set to zero.  I have never (yet :-) )
needed to change this for a report.