Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
DVILJ(1)			   TeX-Live			      DVILJ(1)

       dvilj4, dvilj4l,	dvilj2p, dvilj - convert a TeX DVI file	to PCL,	for HP
       LaserJet	printers

	dvilj [--Dnumber] [-ccopies] [-dmode] [-D] [-E]	[-eoutputfile]
	      [-ffrompage] [-g]	[-hheaderfile] [-l] [-Mflag] [-mmag] [-ppages]
	      [-q] [-r]	[-ttopage] [-spagesize]	[-v] [-Vmode] [-w] [-xxoff(mm)]
	      [-yyoff(mm)] [-Xxoff(dots)] [-Yyoff(dots)] [-z] [filename]

       dvilj and siblings convert TeX-output ".dvi" files into PCL (the
       Hewlett-Packard Printer Control Language) commands suitable for
       printing	on a HP	LaserJet+, HP LaserJet IIP (using dvilj2p), HP
       LaserJet	4 (using dvilj4), and fully compatible printers.

       dvilj4 also provides support for	the builtin Intellifont	and TrueType
       fonts; TFM and VF files are provided in the distribution.  Virtual
       fonts are not supported directly	by dvilj, so you must run dvicopy(1)
       first, or otherwise expand the virtual fonts

       All programs are	generated from one source file dvi2xx.c. They are
       usually called via a shell script or as a line printer filter. One such
       script, dvihp(1), is included in	the distribution. It provides command-
       line options similar to those of	dvips(1).

	   Debug according to the bits of number; see the kpathsea(3) manual
	   for values. Also turns on general verbosity.

	   Print each page number times	(including original)

	   print in duplex mode. The option -d1	means long edge	binding, -d2
	   stands for short edge binding. This option is only selectable in
	   dvilj4 and dvilj2p.

	   Double-sided	printing - see below; -D1 prints odd sides only, -D2
	   is for even pages, a	trailing - suppresses printing of empty
	   padding pages.

       -E  Switch printer into econo mode (dvilj4 only).

	   Send	output to outfile instead of the basename of dvi file extended
	   with	".lj". If outfile is - (as in "-e-") the output	is directed to
	   standard output and can be directly piped into a spooler.

	   Print pages with TeX	page numbers greater than or equal to pagenum.

       -g  Go mode: do not reset printer at start of job.

	   Copy	headerfile to output before translation	of the DVI file. Used
	   to send arbitrary commands to the laserprinter.

       -l  Print output	in landscape mode; supported only by dvilj2p and

	   Do (not) call mktexpk(1) to generate	fonts on demand. -M1 and -M
	   are equivalent. -M0 enables invoking	mktexpk(1). (This is the same
	   as in dvips(1).) The	default	behavior (i.e.,	if no -M option	is
	   given) is chosen at compile-time; as	distributed, mktexpk is

	   Specify the magnification to	use. The following are available:

	     -m#usermag	e.g., #900
	     -m0 equivalent to -m#1000
	     -mh equivalent to -m#1095
	     -m1 equivalent to -m#1200
	     -mq equivalent to -m#1250
	     -m2 equivalent to -m#1440
	     -m3 equivalent to -m#1728
	     -m4 equivalent to -m#2074
	     -m5 equivalent to -m#2488

	   Print pagecount pages after the starting page.

       -q  Quiet operation: omit final statistics, etc.

       -r  Toggle page reversal.

	   Specify the page size:

	     -s1: Executive (7.25" x 10.5")
	     -s2: Letter (8.5" x 11")
	     -s3: Legal	(8.5" x	14")
	     -s6: Ledger (11" x	17")
	     -s25: A5 paper (148mm x 210mm)
	     -s26: A4 paper (210mm x 297mm)
	     -s27: A3 (297mm x 420mm)
	     -s45: JIS B5 paper	(182mm x 257mm)
	     -s46: JIS B4 paper	(250mm x 354mm)
	     -s71: Hagaki postcard (100mm x 148mm)
	     -s72: Oufuku-Hagaki postcard (200mm x 148mm)
	     -s80: Monarch Envelope (3 7/8" x 7	1/2")
	     -s81: Commercial Envelope 10 (4 1/8" x 9 1/2")
	     -s90: International DL (110mm x 220mm)
	     -s91: International C5 (162mm x 229mm)
	     -s100: International B5 (176mm x 250mm)

	   These values	are from the PCL 5 technical reference manual. If the
	   -s commandline option is omitted, no	clipping is performed at the
	   bottom of the page. (But printing below the paper bottom should not
	   disturb any correctly behaving PCL printer.)	Please remember	that
	   the correct paper tray must be installed for	selected paper size,
	   so use this option only if you have full control over your print

	   Print pages with TeX	page numbers less than or equal	to pagenum.

       -v  Verbose mode: list fonts used, etc.

	   Compatibility mode. As mode,	use "K"	for Kyocera, "B" for Brother,
	   6 for LJ6 printers.

       -w  Omit	warnings.

	   Global x-offset in mm on output page	relative to 1 inch/1 inch

	   Global y-offset in mm on output page	relative to 1 inch/1 inch

	   Global x-offset in dots on output page (overrides 1 inch/1 inch

	   Global y-offset in dots on output page (overrides 1 inch/1 inch

       -z  Print a test	page with the page counter at end of job.

       If no operands are specified a brief usage message is displayed.

	   The DVI file	name that shall	be converted by	dvilj. It must always
	   be seekable.

	   The output file name	is constructed from filename. Either an
	   extension ".dvi" is replaced	by ".lj", or the extension ".lj" is

	   If filename is -, the DVI file is read from standard	input and the
	   resulting PCL document is written to	standard output. (Please
	   remember that thhe DVI file must be seekable, even if it's stdin.)

       "\special" commands supported by	dvilj have the generic syntax

	 \special{key1=value key1="value with space"}
	 \special{key3 = value key4 = 'note optional spaces around equal sign'}

       I.e., specials are a sequence of	key/value pairs, separated by an equal
       sign. Spaces around the equal sign are ignored. The value is either a
       space separated word, or	a quoted string. Both double and single	quotes
       can be used, alternatively. There is no support for quoting quote
       characters in values; if	you want both double and single	quotes in one
       value, you're out of luck.

       The following key/value combinations are	valid:

	   Insert file at the current position.	file is	searched with
	   kpathsea(3),	see below.

	   The file content must be valid for this printer, i.e., it should
	   contain PCL escape sequences	or HP-GL/2 commands. If	the file is a
	   graphics file, this typically means that the	upper left corner of
	   the graphics	is placed at the current position.

	   PCL absolute	positioning escape sequences in	file are rewritten to
	   be relative positioning commands; the lowest	appearing coordinate
	   is used as reference.

	   Insert file verbatim	at the current position, without any changes
	   of the file content.	file is	searched with kpathsea(3), see below.

	   This	is mostly used to keep absolute	positions in PCL files.

       psfile=file llx=x0 lly=y0 urx=x1	ury=y1 rwi=s
	   Convert Postscript file file	to HP PCL, by Ghostscript with device
	   "ljetplus", and insert the resulting	graphics file at the current
	   position, rewriting absolute	position escape	sequences. file	is
	   searched with kpathsea(3), see below.

	   The accompanying key/value pairs are	mandatory, they	can be
	   specified in	an arbitrary order. Values x0, x1, y0, y1, and s are
	   integers. (x0,y0) is	the lower left corner, (x1,y1) the upper right
	   corner of the image.

	   Please note:	The specific semantics of this special is not known.
	   In particular, the rwi parameter is some scale factor; but even
	   looking at the source code it is not	quite clear what the special's
	   author intended to implement	here. In addition, it is unclear what
	   dimensions are used to specify the corners, Postscript points or
	   PCL dots.

	   If you happen to know the psfile semantics, or if you spent the
	   work	analyzing them,	please inform us at, so that we
	   can update this man page with the relevant information.

	   where syntax	is either "dvilj" or "ignore". This is a very crude
	   way to tell the driver what to do with psfile specials.

	   If the value	is "ignore", all psfile	specials that are processed
	   afterwards are ignored, until the next dvilj-psfile-syntax special
	   is processed.

	   If the value	is "dvilj", psfiles specials are processed as
	   explained above, until the next dvilj-psfile-syntax special is

	   An obvious, planned,	extension is the value "dvips",	but this has
	   not been implemented	yet.

	   That	special	is not as simple as it sounds at first.	Since its
	   semantics is	defined	by processing order, it	is only	of use if it
	   is placed on	the same page as the psfile special. Having it once in
	   a file (e.g., on the	first page) does not help if you print just
	   one page of the document -- dvilj does not do prescanning of	first-
	   page	specials like some other drivers do. (Patches would be
	   welcome, of course.)

       comment=arbitrary text
       comment arbitrary text
	   This	causes the rest	of the special to be ignored; it may be	used
	   to add meta-information to a	DVI file.

	   With	the first form,	the comment may	appear anywhere	in the
	   special.  When it appears first, the	processing of this special is
	   terminated and all other text behind	is ignored.

	   The second form is a	speciality that	has been introduced for
	   compatibility with other drivers. If	the first keyword of the
	   special is comment and has no value,	it is taken as a valid comment
	   syntax, too;	the rest of the	special	is ignored.

	   Position the	page on	the physical paper. The	value po may be	one of
	   the following values:

	     0	for portrait
	     1	for landscape
	     2	for reverse portrait
	     3	for reverse landscape

	   Define the point number n. This point can be	referred to later in
	   other special commands to specify areas that	shall be filled	with
	   some	pattern. n must	be between 0 and 79.

	   x and y are the position of that point and have the form "?pt"
	   where "?" is	a floating point number. The positions are relative to
	   the DVI page	origin;	i.e., coordinates increase moving right	and
	   down, the point of origin is	(1in,1in) in the upper left corner,
	   altered by options -x, -y, -X, and -Y, but not by \hoffset and

	   x and y can be omitted, i.e., the values 3 or "4(,)"	are valid.
	   Then	the current page position is used as position for point	n.

	   This	undefines all points again.

	   This	sets the fill mode for the next	fill special, the area will be
	   filled with gray color. (grey is an alias for gray.)	Any pattern
	   specification is reset.

	   gray_scale is the percentage	of gray	that shall be used here; with
	   0 meaning white and 100 meaning black.

	   Caveat: That	special	is actually a misnomer.	PCL names these	gray
	   scales shading patterns and they are	created	by placing dots	in the
	   area. The gray scale	selects	how far	spread the dots	are. In	the
	   lower ranges, this doesn't look very	gray on	close sight, but more
	   like	a dotted background. Furthermore, the gray scales are not as
	   fine-grained	as the value range 0..100 might	make you believe. In
	   reality, there are only 8 different gray patterns available:

	      1	-  2%
	      3	- 10%
	     11	- 20%
	     21	- 35%
	     36	- 55%
	     56	- 80%
	     81	- 99%

	   One of these	patterns is selected according to the gray_scale

	   This	sets the fill mode for the next	fill special, the area will be
	   filled with a pattern. Any gray color specification is reset.

	   pat is one of the following values:

	     1	horizontal lines
	     2	vertical lines
	     3	diagonal lines,	from lower left	corner to upper	right corner
	     4	diagonal lines,	from upper right corner	to lower left corner
	     5	crossed	lines, vertically
	     6	crossed	lines, diagonally

	   Fill	the area between the points a and b, according to the current
	   fill	mode.

	   Point a must	be the upper left corner and point b must be the lower
	   left	corner of the rectangle. Otherwise the result is garbage.

	   The default fill mode is 10%	gray color filling.

	   This	is a legacy special, its use is	depreciated. If	the special is
	   just	one word that names an existing	file, that file	is verbatim
	   included. Contrary to other file inclusion means, the file is not
	   searched with kpathsea(3). You are not supposed to use this special
	   and we won't	fix any	problems with it.

       It should be noted that the special parser does sometimes accept
       constructs that are not valid as	in the documentation above. Then, the
       output is most often damaged in some way.

   Searching for Included Files
       Proper file include specials search the file with kpathsea(3). The
       search path is configured by variable "DVILJINPUTS" and,	if the file is
       not found in that search	path, by variable "TEXINPUTS".

       Search via "DVILJINPUTS"	covers the use case that one has common	site-
       wide graphics that shall	be included in documents, e.g.,	scanned
       signatures. Search via "TEXINPUTS" covers the use case that one has
       graphics	as part	of ones	current	document.

       "dvilj" is used as the ".PROGRAM" name in texmf.cnf, for	all driver
       variants, independent of	the actual program name.

   Unknown Specials and	"TEX_HUSH" configuration
       Kpathsea(3) has the concept of warning suppression with the
       configuration variable "TEX_HUSH", please refer to its Info node	TeX
       support / Suppressing warnings. That variable holds a colon-separated
       identifiers that	specifies the to-be-suppressed warnings.

       If "special" is among the listed	values,	dvilj does not output warnings
       any more	about specials that it doesn't know about. But if there	is a
       recognized special and if that special has an invalid parameter,	then a
       warning is output nevertheless, independent of the content of

       If the printer has a duplex unit	installed, duplex printing can be
       demanded	with the -d option.

       Otherwise, the command line option -D causes the	printer	to print in
       doublepage mode,	that is, roughly speaking, printing first the even
       pages and then the odd pages of a document. If -D is used to print both
       even and	odd pages (-D is used without the optional 1 or	2) the
       following will happen after half	of the pages is	printed: LJ: the
       printer stops, shows message "FEED" and switches	on manual feed led.
       The printer continues when either the printed pages are fed into	the
       manual page feeder, or the operator pushes the continue button (after
       placing first the printed pages into the	paper tray).

       If -D1 was specified only odd pages will	be printed, -D2	can be used
       for even	pages. A trailing "-" (as in -D-, -D1- or -D2-)	supresses
       printing	of empty pages which are generated for padding otherwise.

       The driver allows the -D	option for both	print-directions (front-to-
       back or back-to-front printing).	It tries to be clever in certain
       cases: when a document has an odd number	of pages it inserts in the
       right place an empty page when a	document starts	with page 0 the	driver
       inserts an empty	page after the 0-page when a piece of a	document is
       printed that starts with	an even	page-number it prints this page	at the
       backside	of the first page to ensure that the odd sides are always on
       the frontside. The 0-page is treated like an odd	page.

       The doubleside option works for all LJs,	not only for the new D model
       with does doubleside-printing (actually,	I don't	know whether it	makes
       much sense on the new LJ	II D at	all).

       Caveat on the doubleside-option:	When it	is used	frequently or on very
       large files, it might become necessary to clean the printer much	more

       The command line	option -pX can be used to abort	printing after the
       output of X pages (can lead to strange results together with -D). I
       personally dislike this option. The secure way of printing a part of a
       document	is using -f (from) and -t (to).

       dvilj uses the same environment variables and algorithms	for finding
       font files as TeX and its friends do. See the documentation for the
       kpathsea(3) library for details.	(Repeating it here is too cumbersome.)

	   If set, overrides all other font paths.

	   If set, overrides mktexpk(1)	as the name of the command to execute
	   to create a PK file if one isn't found.

	   May be set to indicate which	sizes of fonts are available. It
	   should consist of a list of numbers separated by colons. If the
	   list	begins with a colon, the system	default	sizes are used,	as
	   well. Sizes are expressed in	dots per inch; decimals	may be used
	   for "pxl" files: for	example, a 300 dots per	inch file magnified by
	   half	a step comes out to 1643 dots per five inches, which should be
	   encoded as 328.6.  dvilj tries the actual size of the font before
	   trying any of the given sizes.

	   Primary search path for include files.

	   Secondary search path for include files.

	   Colon separated list	of identifiers that name situations where no
	   warning shall be output. The	following identifiers are used:

	     checksum  suppress	mismatched font	checksum warnings
	     readable  suppress	warnings about unreadable files
	     special   suppress	warnings about unknown specials
	     all       suppress	all warning classes above
	     none      suppress	no warnings

	   Trace kpathsea(3) lookups; set to -1	for complete tracing.

	   On Windows, this may	be the path to Ghostscript; there the default
	   is gswin32c.exe.

	   On Unix, this environment variable is not used. Ghostscript is
	   called as gs(1) and must be found over $PATH.

       dvihp(1), dvicopy(1), dvips(1), xdvi(1),	mktexpk(1), gs(1), kpathsea(3)

       Email bug reports to

       Source is at <>; but for
       compilation the texk build environment is needed, from

       As of July 2007,	PCL reference documentation is found at	HP's Web site
       At the end of that page are links to reference manuals for PCL and PJL.

       In case that page is changed, here are the URLs of these	documents.
       All have	the form
       where "<ID>" is the following document ID:

	   PCL 5 Technical Quick Reference Guide. This is the 1st thing	to
	   look	up if you have questions about PCL escape sequences.

       13210 and 13211
	   PCL 5 Technical Reference Manual (part I and	II). This is the full-
	   detailled explanation that you need to look up if you don't
	   understand how the printer works. Part I is the actual manual, part
	   II explains HP-GL/2 and has overall tips.

       13208 and 13207
	   PJL Technical Reference Manual (and addendum)

	   PCL 5 Color Manual. This explains color specials for	the newer HP
	   printers. (Not of much use today; for practical purposes we would
	   need	to add color specials to dvilj first.)

       13206 and 13209
	   Comparison Guide (and addendum) that	documents which	PCL escape
	   sequences are supported on which HP printers.

       dvi2xx by Gustaf	Neumann, Wirtschaftsuniversitaet Wien.

       dviljk fork by Karl Berry.

       Joachim Schrod <>	supplied security fixes	and updated
       this man	page.

       dvi2xx is public	domain software. dviljk	changes	are covered by the GNU
       General Public License.

Version	2.6p5			  2012-03-12			      DVILJ(1)


Want to link to this manual page? Use this URL:

home | help