Provided by: texlive-binaries_2023.20230311.66589-9build3_amd64 bug

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)