Faximum TechNote #226

Faximum TechNote #226

(http://www.faximum.com/technotes/226)

TITLE:    #226 - OEM Documentation for PCL-5e Interpreter

KEYWORDS: PCL-5e pcltiff

RELEASE:  Faximum PCL engine (Release 3.x)
	  Faximum ELS/PLUS v4

CLASSIFICATION: All

PROBLEM:  This TechNote contains the documentation received by the
	  OEM supplier of the PCL-5e interpreter used in Faximum
	  software products starting with the PCL Engine (Release 3)
	  and Faximum ELS/PLUS Version 4.

CAUSE:    N/A

SOLUTION: N/A

=================================================================
This documentation is a verbatim copy of the information provided
by the company that has provided Faximum Software with the
technology upon which Faximum has built its PCL Engine product.
Many parts of this documentation, especially the section on
installation, apply only to other versions of the PCL technology
(including those intended for non-UNIX platforms) and not to the
Faximum PCL Engine. With that said, however, it is felt that this
information in this document is still useful to advanced users and
is included here with the warning that not all the material
applies to the software you have installed.
=================================================================

PCL-5e to TIFF CONVERTER

USER'S MANUAL

Contents:

1.0  INTRODUCTION
	1.1  PCL5e Notes:
	1.2  Overview of pcltiff:

2.0  FONTS
	2.1  The TrueType PCLT (Printer Control Language Table)
	2.2  Character Complements and Symbol Sets
		Unbound Scaleable Fonts
		Supported Symbol Sets
		Character Complements

3.0  PCL5EFAX Data Files
	3.1  Table 1: Data Files
	3.2  NOTES ON FONTS
	3.3  Auxiliary Data Files
	3.4  Utility Files
	3.5  Program files

4.0  INSTALLATION
	4.1  DOS and OS/2
	4.2  UNIX

5.0  ADDING FONTS
	5.1  Relocating and Adding Intellifont Libraries
	5.2  Recataloging Internal Fonts
	5.3  Adding TrueType Fonts
		table 2
		fdump.exe
	5.4  Edit the tt.txt file
	5.5  Run facedata.exe
	5.6  Adding Symbol Sets

6.0  OPERATION

	6.1  Program Execution
	6.2  Initialization file
	6.3  Command Line Options
	6.4  Advanced Binary Options
	6.5  Option Notes
	6.6  Advanced Option Notes

APPENDIX A  Internal Scalable Fonts

APPENDIX B  Internal Symbol Sets

=================================================================

1.0   INTRODUCTION:

Pcltiff is an interpreter of the PCL5e printer language (as
described, for example, in "PCL5 Printer Language Technical
Reference Manual" by Hewlett Packard, 1990.)  It converts PCL5
files to a rasterized image file, which can be tailored for
TIFF G3, G4, Brooktrout, PCX, and DCX  formats. With a few
exceptions, it supports PCL5E (extended PCL5) which, among
other extensions, includes support for TrueType fonts.

1.1  PCL5E Notes:

PCL5E uses TrueType fonts, as well as the fonts used by PCL5. In
fact, with the introduction of the HP LaserJet 4, HP included the
16.66 pitch Line Printer font as the only onboard bitmap font.
The several variants of the Courier bitmap font were replaced with
Intellifont scaleable Courier fonts. TrueType fonts have become the
de facto standard for use with Windows programs.

With pcltiff, the printer driver does not have to convert TrueType
fonts to bitmap form for downloading. This is significant for
fax-normal or fax-fine output, since the bitmaps must be scaled
from the normal 300/600 dpi form to 204/196 or 204/98 form, often
with unpleasant results.

PCL5E has several other advantages:

	600 dpi operation as well as 300 dpi
	Arc fonts in addition to stick fonts
	Bezier curves in HP-GL/2
	Additional raster graphics compression

One of the most significant additions in the font world is the
introduction of user-defined symbol sets and unbound scaleable
fonts. (See section 4)

1.2  Overview of Pcltiff

Pcltiff is a complete emulation of the HP LaserJet 4 printer.
This means that its "on board" fonts include all of the fonts
found on the LJ4.

The user of pcltiff has the option of acquiring additional
Intellifont and TrueType fonts, including Windows TrueType fonts
and public domain TrueType fonts. PCL5E-to-FAX can be configured
to use any TrueType font as an internal font, as explained in
section 2.0.

-----------------------------------------------------------------

2.0  FONTS

2.1  The TrueType PCLT (Printer Control Language Table)

A TrueType font file consists of several tables, some of which
give complete instructions for producing the outline of each
glyph in the font. There may be only a handful of such glyphs,
such as those used in generating bar codes, or there may be
several thousand. Other tables are used to describe the font
as a whole. For example, the name table typically gives the
name of the font in several forms and languages.

Some tables are required and some are not. The PCLT, Printer
Control Language Table, is an important table for use with PCL5E,
but, unfortunately, is not a required table. It is, however,
part of all of the standard TrueType fonts supplied with the
pcltiff converter.

A TrueType font without a valid PCLT, and which is not one of the
LaserJet 4/5 internal fonts, requires the following to be an
internal font. The user must supply either the character
complements array or the symbol set number to be used with the
font, and the typeface ID. The HP PCL5 Comparison Guide includes
a list of  internal fonts included with various printers. This
list is also given in Appendix A of this document.


2.2  Character Complements and Symbol Sets

Unbound Scaleable Fonts:
The concept of an unbound scaleable font was introduced in PCL5E
by HP. In PCL5 all downloaded fonts were "bound" to a particular
symbol set, or perhaps to a limited set of ISO symbol sets. Among
other things, this meant that the font could include at most 256
glyphs (or characters).

An unbound font, on the other hand, is not bound to a single
symbol set. It can support several symbol sets and can include an
indefinite number of glyphs.  Most internal fonts are unbound.
Two notable exceptions are the TrueType Symbol and Wingding
fonts.

Supported Symbol Sets:
Fonts indicate their supported symbol sets in an array of 8 bytes
which together make up a string of 64 bits.  In this string, each
bit is used to indicate a family of symbol sets supported by the
font. The lower 3 bits in byte 7 are used to indicate whether the
character codes are Unicode numbers (used  with TrueType fonts)
or MSL numbers (used with AGFA Intellifont fonts).

Character Complements:
Normally, the user of PCL5E does not have to be concerned with
character complements. The only exception was noted above, i.e.
the case of a TrueType font which (1) has no PCLT, (2) is not one
of the standard fonts listed in Appendix A and (3) is not bound to
a particular symbol set. If the user does not indicate otherwise,
a default character complement is chosen such that the Basic Latin
symbol sets are supported. If the font is bound to a particular
symbol set, and this set is not one of the standard sets (see
Appendix B), then the set must be added to the internal symbol
sets as described below.

Appendix D of the HP PCL5 Comparison Guide has tables of symbol
list for various character complement bits. Note that bit 63 is
the left most bit in the first byte of the character complement
array of 8 bytes.

=================================================================

3.0  Pcltiff Data Files

In order to function properly, pcltiff requires several data files,
including font files. Some of these data files can be modified in
order to modify the internal fonts and/or symbol sets available to
the interpreter. The modifiable files are listed in Table 1.
Sections 3.3, 3.4 and 3.5 discuss the modification of files.


3.1  LJ.INI

LJ.INI specifies the location of various categories of files.
It must include the switches given in Table 1.

NOTE:  Pay particular attention to if.fnt. It includes (internally)
the complete path to each Intellifont font. See Section 4.0.
(If the *.cdi or .cdm files are placed in a directory other than
\pcl5e\if, the program ixmak.exe should be executed with the
appropriate value for the if= switch in lj.ini.

NEW NOTE: If ixmak is run with the /p (or -p) switch only the
font name is included in if.fnt. This is now the preferred way
to operate since the path to the .cdi (or .cdm) can be indicated
in lj.ini regardless of where they were located when ixmak was run.

3.2  Data Files, listed by the default directory, as given in the
lj.ini file

Table 1: Data Files

type 		filename	DESCRIP			SWITCH	NOTE	
========================================================================
MODIFIABLE
DATA FILES:

lje\		char_set.ico	character 		sc=	3
				complements

		if.fnt		Intellifont		sc=	5
 				library index
	
		scalstuf.lj3	internal		sc=	7
				scaled fonts
	
		uif.ss		symbol sets 		sc=	10
				Uni. List

		utt.ss		symbol sets		sc=	10
				MSL list
	
		lj.ini		sets defaults			6


UTILITIES	facedata.exe	modifies scalstuf.lj3										using data from tt.txt
		fdump.exe	Shows all glyphs of font	sec. 5.4
		ixmak.exe	Modifies if.fnt
				using data from if.txt
		ufssmak.exe	Modifies uif.ss, utt.ss
				using data from ufssmak.txt

FONTS:

lje\bmfonts\	linep200.crt	200dpi Lineprinter	bm=	2
		linep300.crt 	300dpi Lineprinter	bm=	2	
		linep400.crt 	400dpi Lineprinter	bm=	2
		linep600.crt 	600dpi Lineprinter	bm=	2

lje\if\		93950.cdi	Courier			if=	5
		93951.cdi	Courier Italic		if=	5 	
		93952.cdi	Courier Bold 		if=	5
		93953.cdi	Courier Bold Italic	if=	5
		93777.cdi	Letter Gothic		if=	5
		93778.cdi	Letter Gothic Italic	if=	5
		93779.cdi	Letter Gothic Bold	if=	5
		92500.cdi	CG Times		if=	5
		92501.cdi	CG Times Italic		if=	5
		92504.cdi	CG Times Bold		if=	5
		92505.cdi	CG Times Bold Italic	if=	5	
		94021.cdi	Univers Medium		if=	5
		94022.cdi	Univers MdIt		if=	5
		94023.cdi	Univers Bd		if=	5
		94024.cdi	Univers BdIt		if=	5
		94029.cdi	Univers MdCd		if=	5
		94039.cdi	Univers MdCdIt		if=	5
		94030.cdi	Univers BdCd		if=	5
		94040.cdi	Univers BdCdIt		if=	5
		90249.cdi	Coronet			if=	5
		90270.cdi	Clarendon Cd		if=	5
		94073.cdi	Marigold		if=	5
		92506.cdi	CG Omega		if=	5
		92507.cdi	CG Omega It		if=	5
		92510.cdi	CG Omega Bd		if=	5
		92511.cdi	CG Omega BdIt		if=	5
		92545.cdi	Garamond Antiqua	if=	5
		92546.cdi	Garamond Krsv		if=	5
		92547.cdi	Garamond Hlb		if=	5
		92548.cdi	Garamond KrsvHlb	if=	5
		92639.cdi	Albertus Md		if=	5
		92642.cdi	Albertus Xb		if=	5
		91119.cdi	AntiqueOlv		if=	5
		91846.cdi	AntiqueOlv It		if=	5
		91118.cdi	AntiqueOlv Bd		if=	5
		plugin.cdi	universal plugin	if=	5
		pluginfp.cdi	universal plugin	if=	5
		if.txt		list of \cgfonts
				used to make if.fnt

lje\ttf\	symbol.ttf	Symbol			tt=	9	
		arialb.ttf	Arial Bold		tt=	9	
		arialbi.ttf	Arial Bold Italic	tt=	9	
		ariali.ttf	Arial Italic		tt=	9		
		arial.ttf	Arial			tt=	9
		times.ttf	Times New Roman		tt=	9
		timesb.ttf	Times New Roman Bold	tt=	9	
		timesbi.ttf	Times New Roman BoldIt	tt=	9	
		timesi.ttf	Times New Roman Italic	tt=	9	
		wingding.ttf	Wingdings		tt=	9
		tt.txt		TT fonts text file	tt=	9

lje\pcldata\	arcfnt.lj3	HP-GL/2 arc fonts	st=	1
		gray200.dat	gray (200dpi) patterns	pt=	4
		gray300.dat	gray (300dpi) patterns	pt=	4
		hatch200.dat	hatch(200dpi) patterns	pt=	4
		hatch300.dat	hatch(300dpi) patterns	pt=	4
		stick1.fon	stick fonts-arb. Scale	st=	8
		stickfnt.lj3	stick fonts 300 dpi	st=	8
		stick23.lj3	stick fonts 200 dpi	st=	8

lje\sym\	ufssmake.txt	Symbol set text file	ss=
		*.sym		75 symbol set files	ss=	sec.5.7

DOS PROGRAMS	ljedos.exe	DOS PCL5e converter
		ljedosd.exe	DOS PCL5e converter demo
		DOS4gw.exe	Rational Systems DOS extender
		PMINFO.EXE	Reports on available protected mode resources
		RMINFO.EXE	Shows machine configuration

OS/2 PROGRAMS	ljeos2.exe	OS/2 PCL5e converter
		ljeos2d.exe	OS/2 PCL5e converter demo
		DOS4gw.exe	Rational Systems DOS extender
		PMINFO.EXE	Reports on available protected mode resources
		RMINFO.EXE	Shows machine configuration

UNIX PROGRAMS	lje		PCL5e converter


NOTES ON FONTS:

1. arcfnt.lj3:
This arc font file is in the form of a text file, describing each
character in the arc font set. The file is used if, and only if,
an arc font is used for labeling in HP-GL/2 mode.

2. linep200.crt,linep300.crt, linep400.crt, linep600.crt:
This is the single internal bitmap font used in PCL5E. In this
font, the glyphs are in either 200, 300 or 600 dpi form or are
scaled as required.

3. char_set.ico:
This file is used by pcltiff mainly to obtain character
requirement data for the on board symbol sets since this data
is not supplied by the UFST(r) symbol set files: uif.ss and
utt.ss. This file is produced whenever ufssmak.exe is run.

4. gray200.dat, gray300.dat, hatch200.dat, hatch300.dat:
Internal pattern fills are used both in the PCL and HP-GL/2
parts of PCL5E. PCL5E uses two sets of patterns for this: one
for fine and normal Fax resolutions, and one for resolutions
of 300 dpi and up. These files are in ASCII form, such that
they can be modified by the user to change characteristics
of the internal patterns.

5. if.fnt:
PCL5E uses the AGFA UFST(r) font scaling technology. The
if.fnt file is required by UFST to locate the internal
Intellifont font libraries and to store some information about
each library. The if.fnt file supplied with PCL5E, unless
specified otherwise, assumes that these libraries are located
in \lj4data on the current volume. A utility called ixmak.exe
is provided in case it is necessary to change if.fnt, either
because the libraries are on a different volume, different
directory or because additional Intellifont fonts are to be
made internal. See the section labeled Relocating and Adding
Intellifont libraries.

6. lj.ini:
The lj.ini file is used to locate the various data files
required and to set various configuration parameters. Pcltiff
searches for this file in the following order:
	1)  current directory
	2)  root
	3)  /lj

7. scalstuf.lj3:
This file is used at initialization of PCL5E-to-FAX to catalog all
of the internal scaleable fonts, both TrueType and Intellifont.
If if.fnt or ttf.txt is changed, the utility program, facedata.exe
should be run. See the section, Recataloging  Internal Fonts.

8. stick1.fon, stickfnt.lj3, stick23.lj3:
The stick fonts are vector fonts used only in the HP-GL/2 mode of
PCL5//PCL5E. Several variants of this font are used - mainly to
save time if the default 9 pitch size of the font is used.

9. tt.txt:
This is a text file list of TrueType fonts which are to used as
internal fonts. Note that the plugin .ttf is not required to be
in this list although, if it is to be used, it should be located
in \lj4ttf or in the directory given by the "tt=" directory in
lj.ini. This text file can actually serve a dual purpose since it
can also be used to provide missing information about a TrueType
font. See the section  Adding TrueType Fonts.

10. uif.ss, utt.ss:
These files contain, in binary form, the contents of the internal
symbol sets which are normally available on the HP LaserJet 4/5
series of printers, for MSL coding and Unicode coding,
respectively. These files are used by UFST(r). They need only be
modified if additional internal symbol sets are required. See the
section Adding Symbol Sets.


3.4  PCL5E AUXILIARY DATA FILES

The following files are supplied for the purpose of modifying
uif.ss, utt.ss, if.fnt or scalstuf.lj3.

if.txt:
list of Intellifont fonts to be placed in if.fnt, used with
ixmak.exe.

ufssmak.txt:
list of symbol set files used to make uif.ss, utt.ss; used with
ufssmak.exe

*.sym:
set of default symbol set files, used with ufssmak.exe


3.5  PCL5E-to-FAX UTILITY FILES

These files are used to modify the files listed in 3.4. They use
lj.ini to locate their input and output as indicated. Each
utility is shown in the form:
	(input) => utility => (output)

where the input is shown as: the file name and the lj.ini switch
used to specify the directory in which the file resides.
(See also section 5.0, Adding Fonts)

(if= if.txt, *.cdi)  => ixmak.exe => (sc= if.fnt)

(ss= ufssmak.txt, *.sym) => uffsmak.exe => (sc= uif.ss, utt.ss)

(sc= if.fnt, uif.ss, utt.ss, char_set.ico;
tt=  tt.txt, *.ttf) => facedata.exe => (sc= scalstuf.lj3, char_set.ico)

=================================================================

4.0  INSTALLATION


4.1  INSTALLATION of LJE from zipfile (DOS, OS/2)

Unzip the file into the root directory. The zipfile includes
complete paths so that directories will be created and the files
will be placed in their proper directories.

4.2  INSTALLATION OF UNIX VERSIONS

Create the following directory:

	lje

Within lje, create these directories:

	ttf
	if
	pcldata
	bmfonts
	sym	

The fonts are stored in tar-files which have been subsequently
compressed using gzip. To uncompress, run gzip -d filename.  Then run
tar -xvf filename to extract files. Extract ttf.tar into ttf, if.tar
into if, et cetera.

The other files are stored in a tar-file. Within this file, the
executable is compressed using gzip. First run tar -xvf filename to
extract files, then run gzip -d to uncompress the executable. Put
these files into the lje folder.

4.3 PLEASE NOTE:
If you choose to use a different directory structure, then you must
edit the file lj.ini and then run the three utilities, ixmake,
ufssmake and facedata. (See sections 3.4 and 3.5). Lj.ini must be
in the same directory as the utility programs (or in the root
directory or /lj).

=================================================================

5.0  ADDING FONTS

5.1  Relocating and Adding Intellifont Libraries

If additional fonts are to be added as internal fonts or if these
fonts are not in the default location, the program ixmak.exe must
be run. This is a DOS box program which requires as input a list
of Intellifont library files.

The complete path to each library is made by concatenating the
path following the "if=" switch in lj.ini with the file name given
in the list. The list itself is a text file. The auxiliary data
file, if.txt, is a list of the internal Intellifont files used with
the HP LaserJet 4/5 series of printers. If the file name is
preceded with "#"  that font library is not added to the internal
fonts.

NEW NOTE: If ixmak is run with the /p option only the name of the
various .cdi (or .cdm) files are stored within if.fnt. The complete
path to these files can then be specified by giving the path in
lj.ini when the interpreter is run.

5.2  Recataloging Internal Fonts

The program facedata.exe is used to recatalog internal fonts after
any of the following changes have taken place:

1. Addition of TrueType font files as internal fonts. (most likely use)
2. The set of internal TrueType fonts is modified.
3. The set of internal Intellifont fonts is modified using ixmak.exe.
4. Additional internal symbol sets are added using ufssmak.exe.
5. Current internal symbol sets are modified using ufssmak.exe.

This program requires as input many of the same files used by LJEFAX,
but produces the master font catalog file, scalstuf.lj3.


5.3  Adding TrueType Fonts

Place the desired TrueType font files into a common directory.
Reference this directory with the "tt=" switch in lj.ini. Add the
names of the files to tt.txt.

If the file includes a PCLT and/or is one of the standard fonts
listed in Appendix A, it is not necessary to supply missing information.

If not, supply the missing information. To do so, add additional
strings to the name of the file in tt.txt. Three "switches" are
used, with the value to be applied to a given quantity following
the switch with no intervening spaces.

Switch Definitions:

c	character complement
Gives a series of bits to be turned off. If a bit is on, the symbol
set associated with this bit is not supported by the font. The bits
to be turned off can be given as individual bit numbers, as a range
of bits separated by commas, or a combination of both.

Ex: font supports all Latin symbol sets (bits 28-31)

	c28-31
	c28,29,30,31
	c21,28-31


s	symbol set
standard PCL form:  number followed by upper case letter

	s15Y


f	typeface name
form: integer

	f1234


NOTE: Use either the s switch or the c switch, but not both.

If if the face is bound, the character complement is 0 and the
symbol set number is non-zero. If the character complement is
non-zero, the symbol set number should be 0.

5.4  Assigning the character complement array

Perhaps the most difficult part of adding TrueType fonts when the
PCLT is not given is deciding what character complement array
should be assigned. Theoretically, it should be possible to
automate this process by using a program that analyzes the cmap,
a required table. This table acts as an index from Unicode to
internal index number for each glyph in the font.

In lieu of such a program, the utility program fdump.exe has been
included to display on a printer all of the glyphs in the font,
either by index number or by Unicode. (Unicode is printed below
each glyph in hex form)

This illustration of the font can be used as an aid in deciding
what bits should be set in the character complements array. Please
also see the HP PCL5 Comparison Guide.

Another utility program, ttfdump.exe, can be downloaded from the
Internet and used to display the contents of all of the tables in
the font. This program enables you to determine whether the PCLT
exists within the font.

Facedata.exe can also be used to create a text file containing
useful information about the font, including information on the
presence or absence of the PCLT.


5.5  Edit the tt.txt file

Edit tt.txt file to include the added fonts. Note that tt.txt uses
the same convention as if.txt: file names preceded by '#' are skipped.


5.6  Run facedata.exe

Run facedata.exe to produce the modified catalog file, scalstuf.lj3.

Facedata.exe, will accept a single command line paramter,
"-p or /p", which will cause a text file called charcode.txt to
be produced, in addition to its other outputs.

This file contains a listing of the character mapping table for
each TrueType font, as well as some of the contents of the font
master structure associated with the font. This file is placed
in the tt= directory.


5.7  Adding Symbol Sets

Normally it is not necessary to add additional internal symbol
sets to PCL5E-to-FAX. However, if a bound font is added which
requires a symbol set not listed in Appendix B, you must modify
either uif.ss or utt.ss in order for PCL5E-to-FAX to access the
font. The utility program ufssmak.exe is provided for this purpose.

First, obtain or produce the appropriate .sym file. Place it in
the same directory as the existing .sym files (\LJE\SYM\).

NOTE that there are two classes of .sym files: those coded for
MSL with a "td" prefix and those coded for Unicode with a "tt"
prefix.

Add the name of the new symbol set to the text file, ufssmak.txt.

Execute ufssmak.exe to produce the new uif.ss or utt.ss.

NOTES ON CREATING .SYM FILES:
The .sym files are text files. The easiest way to create a new
.sym file is to use one of the existing ones as a template. The
SYMBOL SET field has a two character symbol set identifier which
must be unique and which is used internally by UFST to index the
symbol sets.

There are two special symbol sets: "00" and "01" which are used
internally for handling user defined symbol sets which have been
downloaded. These identifiers should not be used for any other
symbol sets.

=================================================================

6.0  OPERATION

(UNIX NOTE: path names would use the  forward slash "/" instead
of "\" and all system files are lower case.)

6.1  Program Execution:

Use the following Command Line syntax to execute the program:

lje -dfilename -eoutput.tif -[option][value] -[option][value]
	-[option][value]

Options may be specified in the command line, or in the LJ.INI
file. Please read section 6.2 for directions on using the
initialization file and options. The only required command
parameter is the name of the input file which immediately
follows the -d option. The name of the output file given by the
-e option is required if it is not given in the lj.ini file
since there is no default value.

Examples:

lje -dtestfile.pcl -etesttif.tif -h204 -v196 -j968
	[may be in any order]

lje -dtestfile.pcl -etesttif.tif
	[options specified in lj.ini]


6.2  Initialization file:

LJ.INI is an optional file, used to specify the default settings
of the options recognized by the executable, and to indicate the
location of the font and pattern files. The LJ.INI file which is
provided with the software is listed below.

In the supplied LJ.INI, there are sample options which are
preceded by "#" so that they are not used. The file includes a
variety of sample TIFF output (j-option) formats, of which j=840
has been selected. LJ.INI does not include all possible options,
but may be modified to achieve the desired output. Options are
specified in the form "option = value", or to turn on a binary
option, "option =". Please read section 5.3 on Options, for a
description of parameters and values.

The search order for LJ.INI is:

1)  current directory
2)  root directory
3)  \ LJ

The options in LJ.INI will be overridden by any options specified
in either the command line or the API, unless the "i" option (see)
is turned on (i=) in LJ.INI.

LJ.INI:
sc=\lje\
bm=\lje\bmfont\
st=\lje\pcldata\
pt=\lje\pcldata\
ss=\lje\sym\
tt=\lje\ttf\
if=\lje\if\
e=ts000001.tif
# create template
#b=0
#or with a template
#f=ts000001.bin
# Brooktrout with EOLs and EOB
#j=4936
# TIFF with EOLs and EOB
j=840
# TIFF with EOLs and EOB and template on each page
#j=9032
# multipage TIFF Group 3 with EOLs and EOB, Motorola format
#j=984
# multipage TIFF Group 3 with EOLs and EOB
#j=968
# DCX (multipage PCX)
#j=131
# single page PCX
#j=11
#t=2272
#s=0
t=0
#for letter set p=0 or omit since letter is default
#p=1
m=0
c=0
#h=204
#v=196

6.3  COMMAND LINE OPTIONS:

Note:
An option not followed by a value is binary, i.e. if present it
causes the non-default value to be used; an option followed by #
indicates an integer value, by #.# a decimal number, by $ a string,
by & a special value. In some cases the string should not start
with an integer.

Option Description, Range And Default Values

-a 	scaling method switch for raster graphics
	range:	0=Ritex
		1=smooth sequence (default)

-b	template/document mode switch
	range:	0=template
		1=document (default)

-c#	Solaris only: document timeout in seconds
	range:	0 to 1000
		0=infinity (default)

-d$	REQUIRED input file name

-e$	output file name
	
-f$ 	template file name

-g$	pagemap file name (see note)

-h#	horizontal resolution (pixels/inch)
	range:  50 to 600
		200 = default

-i	read .ini file after command line parameters received	
	range:	0=no (default)
		1=yes

-j#	TIFF parameter code (see note)
	defaults:	72
			

-k#	G3/2D encoding only: K-value (see note)
	range:	2,3,4

-l$	left font cartridge file name

-m#	Solaris only: page timeout in seconds
	range:	0 to 300
		0=infinity (default)

-n#	default font number
	range:	0-9999
		6=Courier (default)

-o#	default page orientation
	range:	0=portrait (default)
		1=landscape
		2=inverse portrait
		3=inverse landscape

-p#	paper size code (see note)
	range:	0=letter (default)
		1=A4
		2=B5
		3=legal
		4=executive page
		5=A5
		6=monarch envelope
		7=com 10 envelope
		8=C5 envelope
		9=DL envelope
		10=11x17
		11=A3
		12=custom size
	
-q	scaling method switch for bitmap characters
	range:	0=Ritex
		1=smooth sequence (default)

-r$	right font cartridge file name

-s#	output bitmap width in pixels (see note)
	range:	0 to 32767
		1728=default

-t#	output bitmap height in pixels (see note)
	range:	0 to 32767
		0=default

-u$	font source switch
	range:	I=internal fonts (default)
		L=left font cartridge
		R=right font cartridge
		S=soft fonts

-v#	vertical resolution in pixels/inch(see note)
	range:	50 to 600											200=default

-w#	Solaris only: file descriptor for writing messages

-x#	horizontal offset of image within bitmap (pixels)
	range:	0-32768
		0=default

-y#	vertical offset of image within bitmap (pixels)
	range:	no limit
		0=default

-z#	file descriptor for reading messages or
	name of log file

6.4  ADVANCED BINARY OPTIONS:

-!a	if set, turns off form feed on bad PCL escape commands

-!d	if set, causes raster graphics in PCL to be read as 600 dpi.
        Emulates the 300/600 dpi front panel switch on a printer.

-!g	if set, forces scaling to be done at the band level rather
        than the object level

-!i	if set, enables converter to emulate edge-to-edge printing.

-!q     if set, enables converter to convert HPGL without being
	embedded in PCL

-!s     if set, forces turns off scale rounding

-!y     if set, text path is vertical for Asian (Chinese, etc.) fonts

-!z     if set, embedded copy counts are ignored

6.5 ADDED NON-BINARY OPTIONS

-*g#    character cache maximum memory
	if 0 or negative it is set to the default - 9 megabytes

-*o$	name of file containing an overlay macro

-*s#	sets the Sleep value in milliseconds [0]
	(OS/2 only)

-*y#	text parsing message for one/two byte character encoding
	of Asian fonts
	range: 0, 21, 31, 38

-^a#.#	font point size of proportional fonts
	range: 4.0 to 999.75
	12.0 = default

-^b#.#	font pitch of fixed pitch fonts
	range: .44 to 99.0 characers per inch
	10.0 = default

-^c&	symbol set to be used, e.g. 10U
	8U = default

-^d#	special output option (subject to additions)
	1 - .ras type output (used mainly in UNIX)

-^e#	ascii text extraction bit code (special implementation)
	bit 0 set or not -> extract ascii
	bit 1 set -> also output TIF
	bit 2 set -> output ascii position (not implemented)

-^f$	ascii text output file name
	"asc00000.txt" = default

6.6  OPTION NOTES

-a:  Scaling method: Since PCL5 is not a resolution dependent
language, certain objects (raster graphic images and bitmap
characters) must be scaled to the desired resolution (commonly
from 300 dpi to 200 dpi for fax format). There are two scaling
methods: "Ritex" and "smooth sequence". Ritex scaling will
occasionally cause significant pixels to be missed. Smooth
sequence scaling will never omit pixels, but will OR them with
other pixels. The net result is that some raster graphics may
seem too dark. If this is the case, set a=0 to force Ritex scaling.

-b:  The interpreter normally operates in document mode (b=1).
If b=0, it operates in template mode and produces a binary file.
This file is suitable for use as a template, which may be ORed
with either the first page or all pages of a document. (See -f
and -j for further discussion of templates.)

-c:  Document timeout is only applicable to Solaris.

-d:  Input file name is a required parameter on the command line.

-e:  Output file name: There will be one output file for each page
of the input file unless multipage TIFF is specified. An output
file name must be specified, either on the command line or in the
lj.ini flle - here is no default.

For output files with nonnumeric or nonexistant file extensions,
subsequent output file names are derived by successively
incrementing the digit portion of the root name, if present. The
length of the digit portion is preserved by using 0 fill on the
left. If there is no such digit portion, then a digit portion is
added to the root incrementally for each page (001, 002, 003, et
cetera).

If the file extension is a number, the new file name is derived
by incrementing this number. Note that this form is required by
some Brooktrout boards.

Example:
p1:	fx000999.tif	a:\test500.tif	abcdefgh.tif	brookt.301
p2:	fx001000.tif	a:\test501.tif	abcde002.tif	brookt.302
p3:	fx001001.tif	a:\test502.tif	abcde003.tif	brookt.303
et cetera.

-f:  Specify template file: If the interpreter runs in document
mode and a binary template file name (see option-b) is specified
using option -f, the template will be ORed with either the first
page or all pages of the primary document. The width and height
of the template bitmap need not be the same as that of the
document. The template will always be placed at the top of the
page.

Example:  lje -dtest.pcl -etest000.tif -ftemplate.bin

-g:  This option is used to force the interpreter to use page
sizes other than the default. The interpreter uses a set of 13
internal page sizes, along with the page size code (option -p),
to determine the size of the output bitmap. The default page size
code is 0 for "US letter" since the width of the letter size page
is that normally used in the US. For European use it may have to
be set to 1 for "A4". Note that the PCL5 input file may contain
an escape command which will cause the paper size to change from
its original setting.

The following structure should be used when creating a pagemap
file, to be used to replace the internal pagemap. The page width
and heights are expressed in units of 1/72". The map file, if used,
should be a binary file containing up to 13 width, height pairs.

typedef struct pgsz_tag
        {
                INT32           w;
                INT32           h;
        }PGSZ;

        LOCAL PGSZ      trays[] = {
                { 612, 792 },		/* letter */
                { 595, 842 },		/* a4 */
                { 516, 729 },		/* b5 */
                { 612, 1008 },		/* legal */
                { 522, 756 },		/* executivepage */
                { 421, 595 },		/* a5 */
                { 540, 279 },		/* monarcenvelope */
                { 684, 297 },		/* com10envelope */
                { 649, 460 },		/* c5envelope */
                { 624, 312 },		/* dlenvelope */
                { 792, 1224 },		/* 11x17 */
                { 842, 1191 },		/* a3 */
                { 1000, 1000}		/* custom */
        };

-h:  Horizontal resolution of the output in pixels/inch. Most
raster graphics and bitmap fonts are designed for 300 dpi printers.
On the other hand, most fax machines have horizontal resolutions
of approximately 203 or 204 dpi and vertical resolutions of
approximately 196 (fine) or 98 (normal) dpi. There are two sets of
bitmap fonts supplied: one for 200 x 200 dpi and one for 300 x 300
dpi. The 200 x 200 dpi fonts are used for 204 x 196 and 204 x 98
resolutions as well as 200 x 200. For normal fax resolution,
further scaling is done within the interpreter. Scaled fonts and
most HPGL graphics are scaled exactly. For best fax results, it is
recommended that the default resolutions be used. See option !t.

-i:  Read LJ.INI after command parameters. Normally the LJ.INI file
is read only before the command parameters are read.  If  i=1,
LJ.INI is also read after the command parameters, thus allowing
the  .INI parameters to override those given on the command line.

-j:  Output format.  Set J=n in the LJ.INI file, where n is the
decimal value of the binary number represented by the bit settings
in a TIFF option word.

Bit settings and default values are listed in the following table:

BIT	DESCRIPTION		VALUES			DEC. VALUE
 *default j=72
 **	  j=840

0, 1	Compression format 	00 = G3/1D*			0
				01 = G3/2D			1
				10 = G4				2
				11 = PCX/DCX			3

2	Code compression	0= no uncomp codes*		0
				1= allow uncomp codes		4

3	Bitmap bit setting	0=white				0
				1=black*			8

4	TIFF header format	0=little endian(Intel)*		0
	(byte order)		1=big endian(Motorola)		16

5	Bit order		0=low order bits on right*	0
				1=reverse fill order		32

6	Line ending		0=no restriction		0
				1=lines end on byte boundary*	64

7	Multipage TIFF or DCX:	0=single page output*		0
				1=multipage output		128

8	EOL bytes		0=no EOL bytes at end of line	0*
				1=EOL bytes at end of line	256**

9	EOB bytes		0=no 	 			0*
	at end of G3image	1=yes				512**
	
10,	Reserved for EOL type	00*				1024
 	
11	(not used)						2048

12	Brooktrout header	0=TIFF header*			0
				1= Brooktrout header		4096

13	Templates		0= template on 1st page only*	0*
				1= template  on every page	8192


examples:

J value	Binary			Description

  -j72	0000 0000 0100 1000	default G3/1D
 -j840	0000 0011 0100 1000	default, w/ EOL and EOB on
-j4936	0001 0011 0100 1000	default, w/ EOL and EOB on, Brooktrout headers
 -j968	0000 0011 1100 1000	default, w/ EOL and EOB on, multipage TIFF
-j1016	0000 0011 1111 1000	EOL/EOB on, multipg, rev fill, big endian
   -j3	0000 0000 0000 0011	PCX output
 -j131	0000 0000 1000 0011	DCX output (multipage PCX)

PCX/DCX NOTES:

For PCX output, a separate PCX file is output for each page if the
multipage TIFF bit is not set. If multipage TIFF bit is set, output
will be a single DCX file containing all PCX components. For
monotone PCX files, if a bit is set, it is considered white. If
the opposite convention is desired, TIFF bit 3 should be set. Thus
j=3 is normal PCX, while j=11 gives inverted PCX.

-k:  Applicable only with G3/2D encoding, the "K" value as specified
in section 4 , Coding, of CCITT Recommendation T.4: "Standardization
of Group 3 Facsimile apparatus for document transmission:
International Telephone and Telegraph Consultative Committee (CCITT,
Geneva: 1988). K = 2, 3, or 4, the number of scanlines encoded in
a group, in which the first line is encoded 1-dimensionally and
the remainder 2-dimensionally.

-l:  Left font cartridge file.  EP/Fax has the ability to attach
additional font "cartridges" in the form of special font files.
As in the LaserJet III printer, both left and right cartridges
can be attached.

-m:  Page timeout is implemented only in Solaris.

-n:  Default font setting. If a font is not specified (e. g.,
when printing ASCII files, which have no provisions for font
selection), or when the specified font is not found, the default
font will be 10 point Courier. This option enables one to specify
a different default  font. The fonts are assigned numbers
internally and it is this number which should be used. These
numbers depend on the order in which fonts were loaded and what
fonts were loaded if other than the standard set is loaded. In
order to determine these "assignment" numbers set n equal to
1000 and specify a log file to record the output using the -z
option. The numbers 0 - 5 are assigned to the line printer font
and do not appear in the list.

-o:  This option can be used to override the default page
orientation which is Portrait or 0. The other possible values are
Landscape (1),

-p:  See -g.

-q:   Scaling method switch for bitmap characters. See also -a.
Bitmap characters should usually be scaled using the smooth
sequence method, so the q option should not be used.

-r:  Right font cartridge file.  EP/Fax has the ability to attach
additional font "cartridges" in the form of special font files.
As in the LaserJet III printer, both left and right cartridges
can be attached.

-s:   If this is set to 0, the bitmap width is a "minimal" one
which is determined mainly by the page size  and horizontal
resolution. The default is the standard Fax Group 3 width. Note
that at 300 dpi output the default width will cause the page to be
clipped on the right.

-t:   If this is set to 0, the bitmap height is one which is
determined mainly by the page size and vertical resolution. The
Fax Group 3 spec does not define a standard for this. If it is set
to a negative number, the bitmap height is determined not by the
size of the page but by the depth on the page where the last band
was placed. (See notes about fax output at end of this document.)

-u: This option forces the interpreter to select fonts from a
designated source, such as the internal fonts or downloaded (soft)
fonts.

-v:  This option expresses the vertical resolution of the output
in pixels/inch. Most raster graphics and bitmap fonts are designed
for 300 dpi printers. On the other hand, most fax machines have
horizontal resolutions of approximately 203 or 204 dpi and vertical
resolutions of approximately 196 (fine) or 98 (normal) dpi. Four
sets of bitmap fonts are supplied: 200 x 200 dpi, 300 x 300 dpi,
400 x 400 and 600 x 600 dpi. The 200 x 200 dpi fonts are used for
204 x 196 and 204 x 98 resolutions as well as 200 x 200. For normal
fax resolution, further scaling is done within the interpreter.
Also see option !t.

Scaled fonts and most HPGL graphics are scaled exactly. For best
results it is recommended that the default resolutions be used.

-w:  Only used in a multi-tasking environment to communicate with
a parent process.

-x and -y:  These options are used to move the image to the left,
down or both within the output bitmap. This x/y offset is in pixels.

-z:  See  -w. If the character following z is not a digit, then
it is considered to be the first character of a log file name,
which is then used to log error and informative messages in a
non-multitasking environment.

6.6  ADVANCED OPTION NOTES:

!a:  Turn off forced form feed:  In order to emulate the behavior
of certain HP LaserJet printers the PCL5E interpreter will force
a form feed when selected bad escape sequences are received. This
feature may be turned off by setting this binary option.

!d:  Turn on printer front-panel switch for 600 dpi raster graphics.
This will cause any 600 dpi raster graphics to be treated as such
by the interpreter. It is used with files which are created by a
driver for a printer which has such a switch.

!g:  Scale at bitmap level:  For some PCL files, you may get better
results by scaling to the desired resolution after an entire page
has been converted to a bitmap at 300 dpi. Setting this option
will cause scaling to be done at the bitmap level rather than the
object level.

Currently, this scaling is to 200 x 200 or 200 x 100 only. To get
200 x 100 output resolution, set v to 100. The value of h is
ignored; the vertical resolution will be 200 unless v is set to 100.

!i: In order to emulate the output of some IBM printers which use
more of the printable area of the page than HP printers, this
option should be set.

!q: The interpreter processes HPGL commands but normally they must
be embedded in some PCL escape sequences. By setting this option,
"pure" HPGL files can be processed. Note however that various HPGL
plotter parameters such as position of the "scaling points", P1,
P2 will not be correct.

!t:  The output resolutions specified by -h and -v are actually
rounded to the nearest multiple of 100 but the resolution specified
by -h and -v are placed in the TIFF header since some Fax machines
expect these exact values. On the other hand the exact values
present some scaling problems. If exact values are required for
the output, set the !t option.

!y: This option can be used with Asian text to output characters
in "vertical" format. It has no effect in non-Asian text. Specifying
this option has the effect of transforming a portrait page with
horizontal text into a landscape page with vertical text.

!z: Some PCL files will have a copy count escape sequence. If this
count is to be ignored the !z option should be set.

*g: This option should be used only in special cases where a very
large number of characters will be cached such that the memory they
use may cause an excessive amount of memory page swapping, thus
slowing down the interpreter.

*o: For some applications it is handy to specify an internal macro
which will be executed at the end of each page. If this macro is
placed in a special "macro file" the macro can be made internal by
specifying the name of this file using this option.

*s:  OS/2 based programs execute the Sleep() function after each
band is formed. The default parameter is 0. This may be changed
to a different value via this option.

*y:  For some Asian languages like Japanese and Chinese the single
byte character encoding scheme must be replaced by either a pure
two byte encoding scheme like Unicode or by one of a various one/two
byte encoding schemes. HP uses the following numbers to indicate
which scheme is used:
0, 1: single byte only,
21  : 1/2 byte - JIS X0208, GB 2312-80 (7 bit), KS C 5601-1992 (7 bit)
31  : 1/2 byte - Shift-JIS
38  : 1/2 byte - BigFive, TCA, GB 2312-80 (8 bit), KS C 5601-1992 (8 bit)

^a, ^b, ^c: These options can be used to specify the size (point
or pitch) of the font to be used as well as the internal symbol
set to be used. Note that this has an effect only on those PCL
files which do not include escape sequences specifying such values.
The symbol set is identified by a number letter pair such as 8U
(Roman 8) and must be represented by one of the .sym files included
with the interpreter. See Appendix B for the standard set.

^d:  This option is used to specify special output formats and is
subject ot update. Currently the only special output is the UNIX
rasterfile (.ras) format which is essentilly an uncompressed
bitmap with a special header.

^e:  This option can be used to extract the text portion of a PCL
file. This text is placed in a file specified with the ^f option
or the default file asc00000.txt. Note that for many PCL files the
output will be nonsense. The value associated with this option is
actually a bit field which can be used to specify more than just
text output. Currently any value <= 7 will cause ASCII output and
if bit 1 is set a TIF file will also be output, for example value
= 2 or 3.

=================================================================

APPENDIX A
INTERNAL SCALABLE FONTS:

TYPEFACE	TREATMENT			TYPEFACE NUMBER

INTELLIFONT
TYPEFACES

CG Times	Med, Ital, Bold, Bd. Ital.	4101
Univers		Med, Ital, Bold, Bd. Ital	4148
Univers Cond	Med, Ital, Bold, Bd. Ital	4148
Courier		Med, Ital, Bold			4099
Letter Gothic	Med, Ital, Bold			4102
Albertus	Med, Ex. Bd.			4362
Antique Olive	Med, Ital, Bold			4168
Clarendon Cond.	Bold				4140
Coronet		Med, Ital			4116
GaramondAntiqua Kursiv,Halbfett,KursivHalbfett	4197
Marigold	Med				4297
CG Omega	Med, Ital, Bold, Bd. Ital	4113

TRUETYPE TYPEFACES

Arial		Med, Ital, Bold, Bd. Ital	16602
Times New Roman	Med, Ital, Bold, Bd. Ital	16901
Symbol		Med				16686
Wingdings	Med				31402

=================================================================
APPENDIX B
Internal Symbol Sets

SYMBOL SET	PCL SYMBOL	SYMBOL SET NAME
INDEX		SET ID

RE		8U		Roman-8
E1		0N		USI 8859 Latin 1
				(previously called ECMA 94 Latin 1)
E2		2N		ISO 8859-2 Latin 2
E5		5N		ISO 8859-2 Latin 5
PC		10U		PC-8
PD		11U		PC-8 D/N
PM		12U		PC-850
PE		17U		PC852
PT		9T		PC-Turk
W1		19U		Windows 3.1 Latin 1
				(Microsoft calls it ANSI)
WE		9E		Windows 3.1 Latin 2
WT		5T		Windows 3.1 Latin 5
DT		7J		DeskTop
TS		10J		PS Text
VI		13J		Ventura International
VI		14J		Ventura US
PB		6J		Microsoft Publishing
M8		8M		Math-8
MS		5M		PS Math
VM		6M		Ventura Math
PI		15U		PI Font
LG		1U		Legal
UK		1E		ISO United Kingdom
US		0U		ASCII
SW		0S		ISO Swedish: names
IT		0I		ISO Italian
SP		2S		ISO Spanish
GR		1G		ISO German
DN		0D		ISO Norwegian
FR		1F		ISO French
WO		9U		Windows 3.0 Latin 1
				(previously called Windows)
MC		12J		MC Text
SY		19M		Symbol
WD		579L		Wingdings

----------------------------------------------------------------------

TechNote: 226 - Copyright 2001 Faximum Software Inc., All Rights Reserved.
Last Updated: Thu Mar 22 14:33:29 PST 2001
Find all Faximum TechNotes at http://www.faximum.com/support

Copyright 2001 Faximum Software Inc. All Rights Reserved.