dwww Home | Manual pages | Find package

DVILJ(1)                            TeX Live                           DVILJ(1)

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

SYNOPSIS
        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]

DESCRIPTION
       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).

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

       -cnumber
           Print each page number times (including original)

       -dnumber
           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.

       -D[-12]
           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).

       -eoutfile
           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.

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

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

       -hheaderfile
           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
           dvilj4.

       -Mflag
           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 enabled.

       -mmagnification
           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

       -ppagecount
           Print pagecount pages after the starting page.

       -q  Quiet operation: omit final statistics, etc.

       -r  Toggle page reversal.

       -spagesize
           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
           destination.

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

       -v  Verbose mode: list fonts used, etc.

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

       -w  Omit warnings.

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

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

       -Xoffset
           Global  x-offset  in  dots  on  output page (overrides 1 inch/1 inch
           origin).

       -Yoffset
           Global y-offset in dots on output  page  (overrides  1  inch/1  inch
           origin).

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

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

       filename
           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
           appended.

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

SUPPORTED TeX \special COMMANDS
       "\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:

       hpfile=file
           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.

       hpfile_verbatim=file
           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 tex-k@tug.org, so  that  we  can
           update this man page with the relevant information.

       dvilj-psfile-syntax=syntax
           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 processed.

           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.

       orientation=po
           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

       defpoint=n(x,y)
           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 \voffset.

           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.

       resetpoints="all"
           This undefines all points again.

       gray=gray_scale
       grey=gray_scale
           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%
             100%

           One of these patterns is selected according to the gray_scale value.

       pattern=pat
           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=a/b
           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.

       filename
           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
       "TEX_HUSH".

DOUBLE PAGE PRINTING
       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-) suppresses 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
       frequently.

       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).

ENVIRONMENT
       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.)

       "DVILJFONTS"
           If set, overrides all other font paths.

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

       "DVILJSIZES"
           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.

       "DVILJINPUTS"
           Primary search path for include files.

       "TEXINPUTS"
           Secondary search path for include files.

       "TEX_HUSH"
           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

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

       "GS_PATH"
           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.

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

       Email bug reports to tex-k@tug.org.

       Source   is   at   <http://mirror.ctan.org/dviware/dviljk/>;   but   for
       compilation   the   texk   build    environment    is    needed,    from
       <svn://tug.org/texlive/*/Build/source>.

       As  of  July 2007, PCL reference documentation is found at HP's Web site
       at
       <http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=bpl04568>.
       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
       <http://h20000.www2.hp.com/bc/docs/support/SupportManual/bpl<ID>/bpl<ID>.pdf>,
       where "<ID>" is the following document ID:

       13205
           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 fully
           detailed  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)

       13212
           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.

AUTHOR
       dvi2xx by Gustaf Neumann, Wirtschaftsuniversitaet Wien.

       dviljk fork by Karl Berry.

       Joachim  Schrod  <jschrod@acm.org>  supplied  security fixes and updated
       this man page.

       dviljk is currently maintained as part of TeX Live.

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

Version 2.6p5                      2022-08-30                          DVILJ(1)

Generated by dwww version 1.16 on Sat Dec 6 01:16:03 CET 2025.