print.ini

Name

print.ini -- survex printer settings

Description

The print.ini file contains printer descriptions for the Survex printer drivers.

File Format

The format of the print.ini file is similar to the .ini files used on Microsoft Windows. The file is divided into sections, each section corresponding to a separate printer description. A section starts with a section name in square brackets, e.g.:

[generic_pcl]

followed by some options of the form <option>=<setting>, e.g.:

pixels_across_page=960

Most options are preceded by a comment (indicated by a semicolon ';') briefly explaining the option.

Each section can contain a 'like' option. If present this contains the name of another section (possibly in another print.ini file). Options not specified in the current section will be taken from that section. This allows a printer definition to be based on that for another similar model of printer.

Here is an example of how this works:

[dm_9pin_12inch]
like=dm_11inch_9pin
lines_down_page=108

This says that the definition 'dm_9pin_12inch' (for a 9pin dot matrix printer using 12 inch paper), is just like the 11 inch definition for the same printer, except that there are more lines per page.

Each printer driver reads a different section - printdm (the Dot Matrix driver) reads:

[dm]
printhpgl (for HPGL plotters) reads:
[hpgl]
printpcl (for PCL printers) reads:
[pcl]
printps (for Postscript printers) reads:
[ps]
Several definitions are supplied for each printer driver, covering most commonly encountered printers of each type.

printdm

The definitions provided for printdm are: dm_8pin_a4, dm_8pin_11inch, dm_8pin_12inch, dm_9pin_a4, dm_9pin_11inch, dm_9pin_12inch, dm_24pin_a4, dm_24pin_11inch, dm_24pin_12inch, dm_panasonic_24pin, dm_lx86_9pin_11inch, and bj (for driving Canon BJ printers).

In the unlikely event that you need to change the printer control codes, here is a quick overview of the format: printable characters are literal, except for backslash. A backslash '\' indicates that the following character or characters are to be interpreted as a control code, as follows: \ followed by an 'x' followed by two hex digits represents the character with that hex value; a double backslash means a literal backslash; \0 is nul (0); \t is tab (9); \n is newline (10); \r is return (13); \[ is escape (27); \? is delete (127); \A - \Z are (1) to (26).

This is all rather cryptic (printer codes inherently are) but the provided set-ups will work with nearly all dot matrix printers, so you are unlikely to need to fiddle with these runes.

printhpgl

The definitions provided for printhpgl are: hpgl_generic_a4landscape, hpgl_generic_a1landscape, and hpgl_generic_a0landscape.

printpcl

The definitions provided for printpcl are: pcl_generic_a4 and pcl_modern_a4.

Note that if you are using a PCL printer the defaults are set not to use advanced printer features for compatibility. If you want to try these (equivalent to HP Laserjet III or later), then you should use the modern_pcl_a4 printer definition (see below for how to do this). This will enable horizontal and vertical tabbing.

printps

There's only one definition provided at present: ps_generic_a4.

Customising Printer Settings

The only settings most users will want to customise are which printer definition is used, and where to send the output. If you're using a Dot Matrix Printer you will also need to set calibration details.

You shouldn't modify the master print.ini (located in /usr/share/survex on Unix, or in the same directory as the Survex program files on other systems), or your changes will be overwritten by upgrades. Instead create:

The drivers look for the section "[dm]", "[ps]", "[pcl]" or "[hpgl]" as appropriate. The file you create should should contain something like this to select a particular printer:

[pcl]
like=pcl_modern_a4

For printdm, it should also contain calibration measurements (calibrate your printer by running printdm --calibrate):

[dm]
like=dm_24pin_a4
mm_across_page=202
mm_down_page=278

You can override other settings too, such as the output destination. This is usually inherited from [base], and can be overridden in [base] (where it'll apply to all printer drivers) or in a printer driver specific section (such as [dm]). The output destination is set by an option of the form output_<platform>=<device>, where device can be a device name (e.g. PRN, LPT1, LPT2 under DOS, Printer: under RISC OS) or a filename:

[dm]
output_msdos=LPT1
like=dm_24pin_a4
mm_across_page=202
mm_down_page=278

Under UNIX output may be piped into another command like so:

[base]
; send output to printer 'oak'
output_unix=|lpr -Poak

Note you can also override the output setting using the --output command line option.

If the output device isn't a device or a pipe command, it is taken as a filename to write the printer data to. This can then be sent to a printer later.

Caution

If you're using DOS you need to be careful when sending output to a file - printdm, printpcl and printhpgl all produce binary files, which must then be sent to the printer with COPY /B OUTPUT PRN where OUTPUT is the filename and PRN the device name. Do not use COPY without the /B. If you do, the output may be corrupted. Sorry, this is a deficiency of DOS, and there is nothing we can do about it.

If you send output straight to the printer, by putting PRN or LPT1 in the configuration file, then this problem should not occur.

printps produces text files as output, and so should be unaffected by this problem.

printdm can also drive Canon bubblejets in native mode (which gives a higher resolution than in Epson emulation mode). To use this, set "like=bj" in the "[dm]" section - like so:

[dm]
like=bj