Advanced report design

Print output and design for dot matrix and pos devices

Page setup

Page size is very important to configure, else you will obtain longer lines and longer pages and not the correct output.

You can define margins to 0, because the page size will define the practical print out of the printer, that is the printable area.

For a page width of 80 columns at 10cpi the page width is calculated:

Page Width=80 characters with/ 10 characters per inches = 8 inchess = 8*2.54 cms = 20.32 cms

For a page height of 66 lines:

Page Height=66 lines / 6 lines per inches = 11 inchess = 11*2.54 cms = 27.94 cms

Select user defined paper size and enter the correct values.

For thermal receipt printers usually the font A is 12cpi and font B is 17 cpi, so set a page with of 42 /12cpi=3,3 inchess=8..6cms. The characters for font B are 3.3*17=56 at this size. The physical real page width can differ.

For impact receipt printers usually the font A is 10cpi and font B is 12 cpi, so set a page with of 33/10cpi=3,3 inchess=8..6cms. The characters for font B are 3.3*12=40 at this size. The physical real page width can differ.

For receipt printers you can establish a page length of 11 inchess=27.94 cms. If you don't use page headers-footers, or repeatable group headers, will be just like there was not page breaks, the ticket printer driver does not send form feeds.

Activate text out

To automatically activate a report to print as a text (without driver interaction or filtering) with escape code secuences you can go to page setup, select that the report will be output to the character printer (default EPSON driver) or select the output to ticket printer (default EPSONTMU210 driver).

If you have problems or want to enable better quality escape codes (bold,italic, 12cpi, 20cpi) you can select another driver by clicking at printer setup button. You can select a printer in the list and the driver it will use. If you don't select a driver, standard output will be used.

You can also select a printer queue (system printer) so the output will be done to the selected printer.

At page setup you can force cash drawer open (the engine will send the escape command to the printer), before or after printing the report.

Microsoft Windows additonal features

With Microsoft Windows and a good quality print driver installed you can still use the driver to provide fast printing with printer native fonts. You must select the blank text driver and check the Device fonts option.

With this method, the engine will select the best affordable font for the texts, but the graphic elements and images will be printed also (usually the graphic elements print slow on impact printers).

Note this print method does not output lines, but calls Windows API for any graphic and text operation, and for page size selection, the source of any problem (page displacement, garbage output) is usually the print driver.

How it works and design recommendations

The graphic elements (drawings and images) are ignored, based on the page size, the number of lines of the report are determined at a rate of 1/6 lines for inch so for a 11 inch page size the page will be build with 66 text lines.

The length in characters of each line is determined by the first text element placed in the line (or 10cpi is selected if no text in this line), the font step (you can specify a Font Step in the designer) of this text will determine the font size for that line (only one font size is allowed for each line but multiple font styles can be combined in one line). If the text element Font Step indicates By Size value, the engine will use the following table:

Font Size Step cpi
<8 20
8 17
9 15
10 12
11,12 10
13-15 6
>15 5

The text elements are placed vertically rounded to 1/6 inch, so the better way to design a report for text output is set grid height to 1/6 inch that is 0.1666 inch or 0.42333 cms. Also set the horz.grid size as the most common size of it, for example for a 10cpi report set horz. grid to 0.1 inch or 0.254 cms. Also resize the section heights to multiples of 1/6 inch, you can do it automatically by selection the option in Edit menu.

Set horizontal page size correctly or at least narrower than the real page size (printer capability), if you print a 132 column report in a 80 cols printer, the printer will skip two lines for each report line.

The final output will be a number of lines formatted with the selected driver (escape codes), or no formatting at all (PLAIN driver). Depending on the selected driver the last line of each page will finish with a Form Feed instead a Line Feed.

Internal implementation

When the final output is created in memory, the engine send it to the printer in this way:

Microsoft Windows

A new print document is created with the Windows API, to disable the driver, the document is queued as a RAW type document, so the text go to the printer throught the selected port in printer configuration without processing in the printer driver. If oem option is checked then the text is processed first with CharToOem API function.

Linux

The lines are saved to a temporary file, and using unix like interprocess comunication (pipes) the engine calls lpr command line tool, if oem option is checked then the file is processed first by the recode command line tool.

The recode command line tool is called with this parameters:

recode ..850/ tempfile

The lpr command line tool is called with this parameters:

lpr -P printerqueue -r -l -J Title

The -P printerqueue parameters are omited if the default printer is used. The -r will force deletion of the temporary file after processing it, the -l indicates the lpr command to send the file directly to the device without using any print filter, and the -J gives a job title for the printer queue.

Drivers overview

Name Description, escape codes
PLAIN No escape codes are introduced , no form feed characters
EPSON Init printer, page size, 10cpi, wide escape (5cpi) and condensed escape (17cpi), form feed, underline style
EPSON-MASTER Init printer, page size,form feed, 5-6-10-12-17-20cpi, underline-bold-italic, all with ESC ! command
EPSON-ESCP Init printer, page size,form feed, 5-6-10-12-17-20cpi, underline-bold-italic, all with ESC/P compatible commands
EPSON-ESCPQ Same as EPSON-ESCP but selecting the better quality (slower)
IBMPROPRINTER Init printer, page size,form feed, 5-6-10-12-17-20cpi, underline-bold-italic, with IBM Proprinter escape commands
EPSONTMU210 Init printer, page size,form feed, 6-12-17cpi, underline-bold, all with ESC ! command, but is capable of printing red color text.
EPSONTMU210CUT Same as EPSONTMU210 but perform a cut paper command at the end of the document
EPSONTM88II Init printer, page size, 6-12-17cpi, underline-bold, all with ESC ! command
EPSONTM88IICUT Same as EPSONTM88II but a cut paper command at the end of the document
HP-PCL Init printer, page size,form feed, 5-6-10-12-17-20cpi, underline-bold-italic, all with HP-PCL compatible commands
VT-100 Try to emulate VT-100 escape codes
PLAINFULL Same as plain but without blank spaces or blank lines