packages icon

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

      hp2xx - A HPGL converter into some vector- and raster formats

      hp2xx [-options] [hpgl-file(s)]

      Option Format  Default   Description
      General options:
        -c   char *  11111111  Pen color(s). Valid: 1 to 8 digits of 0-7 each.
                               0=off, 1=black, 2=red, 3=green, 4=blue, 5=cyan,
                               6=magenta, 7=yellow.
        -f   char *  ""        Name of output file. "" = autom., "-" = stdout
        -l   char *  ""        Name of optional log file
        -m   char *  pre       Mode. Valid (some are compile-time options):
        -p   char *  11111111  Pensize(s) [dots] (default), [1/10 mm] (mf, ps).
                               Valid: 1 to 8 digits of 0-9 (or characters A-Z for
                      widths beyond 0.9mm) each.
        -P   int     0:0       Selected page range (m:n) (0 = 0:0 = all pages)
        -q           off       Quiet mode. No diagnostic output.
        -r   double  0.0       Rotation angle [deg]. -r90 gives landscape
        -s   char *  hp2xx.swp Name of swap file

      Size controls:
        -a   double  1.0       Aspect factor. Valid: > 0.0
        -h   double  200       Height [mm] of picture
        -w   double  200       Width  [mm] of picture
        -x   double   -        Preset xmin value of HPGL coordinate range
        -X   double   -        Preset xmax value of HPGL coordinate range
        -y   double   -        Preset ymin value of HPGL coordinate range
        -Y   double   -        Preset ymax value of HPGL coordinate range
        -z   double  1.0       Z engagement (working depth) (used in nc output only)
        -Z   double -1.0       Z retraction depth (used in nc output only)
        -t           off       True size mode. Inhibits effects of -a -h -w

      HPGL handling controls:
        -n           off   No filling of polygons; draws outline instead
        -N           off   Ignore PS commands, calculate plot size as needed
        -e   int     0     Extend IW clipping limits by given amount
        -M   int      0        Remap pen no.0 commands to given pen

      Raster format controls:
        -d   int     75        DPI value (x or both x&y)
        -D   int     75        DPI value (y only)

      PCL only:
        -F           off       Send a FormFeed after graphics data
        -i           off       Pre-initialize printer

                                    - 1 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

        -S   int     0         (Deskjet) Special commands: 0=off,1=b/w,3=CMY,4=CMYK
        -d   (see above)       Valid ONLY 300, 150, 100, 75
        -D   (see above)       INVALID for PCL!

      EPS, PCL, and some previews:
        -o   double  0.0       x offset [mm] of picture (left  margin)
        -O   double  0.0       y offset [mm] of picture (upper margin)
        -C                     Modify -o -O to center picture within -w -h frame

      TIFF only:
        -S   int     0         Compression: 0/1=off,2=RLE,3=G3FAX,4=G4FAX,

      Preview on PC's (DOS):
        -V   int     18        VGA mode byte (decimal)
        -H              Show help.

      hp2xx reads HPGL ASCII source files, interprets them, and converts
      them into either another vector-oriented  format or one of several
      rasterfile formats. Currently, its HPGL parser recognizes a large
      subset of HPGL/2.  Some high-level functions related to polygon
      filling are missing.  Also, only some of the fixed space vector fonts
      and none of the variable space arc fonts are supported. Beside these
      limitations, hp2xx has proven to work with many HP-GL sources without
      any trouble.

      hp2xx reads from stdin or from a file if any given on the command
      line.  If no output file name is given (default), the output
      automatically goes into a file whose name is derived from the input
      file name and the current mode. For example, hp2xx -m pcl foo.hpgl
      writes the output to a file "foo.pcl". Use option -f outfile to
      specify your output file name explicitly, or -I -f- to write to
      stdout, e.g. when piping into a queue.

      The program scans the current HPGL source, converts all drawing
      commands into elementary vectors, saves these in a temporary file, and
      concurrently determines the maximum coordinate range used. It then
      processes the vectors by mapping them into a user-defined coordinate
      system, preserving the aspect ratio of the original data.

      This coordinate system by default fits into a window of size 200 mm by
      200 mm. To change the size of this bounding window, use -h height and
      -w width to set the (max.) desired height and width of your output
      picture; optionally use -a aspectfactor to alter the aspect ratio by
      the given factor (aspectfactor < 1 narrows your picture).  The
      generated picture will always fit into the window defined by -h height
      and -w width, padded with background color at the lower or right
      margin if needed.

                                    - 2 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

      A second way of defining sizes is relying on the size the picture
      would actually show if plotted on a sheet of paper by a HP-compatible
      plotter. By activating flag -I -t (true size), options -a, -h, and -w
      are ignored, and the sizes are derived from the HP-GL file assuming
      that 1 HP unit = 1/40 mm.

      Option -r rotation_angle (in degrees) allows you to rotate the object
      prior to all scaling operations. Its main use is to facilitate
      landscape format: -r90 rotates your whole picture, e.g. from portait
      to landscape format. However, any reasonable rotation angle is valid.

      By naming a file with option -l log_file you can redirect the
      diagnostic outputs into the given file, even without a redirection
      mechanism for stderr like in UNIX shells (e. g., DOS).  Option -q
      (quiet) gets rid of them completely.

      If you need to process a series of similar objects which should be
      translated into exactly the same coordinate system, there is a way to
      override the auto-scaling: First, run all files separately and note
      the infos on the used coordinate ranges. Then, pick a range that will
      cover ALL your pictures.  You can now assign defaults to the
      internally generated range limits by specifying -x xmin, -X xmax, -y
      ymin, and -Y ymax. NOTE: Clipping is only supported via the IW command
      ! If any picture coordinate exceeds your limits, they will be

      Use option -m mode to select the program mode, i.e. the output format.
      Currently supported: mode = "mf" (Metafont), "em" (emTeX ecial{}
      commands), "epic" (line drawing using TeX macros within epic.sty),
      "eps" (PostScript), "dxf" (Autocad), "emf/emp" (MS Enhanced Metafile /
      Printing - available in Windows-built executables only), "svg"
      (Scalable Vector Graphics), "fig" (XFig 3.2), "gpt" (GnuPlot ascii),
      "hpgl" (simplified HP-GL, e.g. for import tasks), "pcl" (HP-PCL Level
      3 format (suitable for printing on a HP Laserjet II, DeskJet, or
      compatible printer), "escp2" (Epson Esc/P2 printer commands, suitable
      for printing on Epson Stylus models), "img" (GEMs IMG format), "jpg"
      (JPEG image), "pdf" (Adobe Portable Document format), "pbm" (Portable
      Bit Map / Portable PixMap for color plots), "pcx" (PC-Paintbrush
      format, also accepted by MS-Paintbrush / Windows 3.0 and many other PC
      based pixel renderers), "png" (Portable Network Graphics format), "nc"
      (CNC G-code, for engravings), or "rgip" (Uniplex RGIP).  There is also
      a preview option "pre" which supports VGA cards (DOS), ATARI, AMIGA,
      X11 servers, and Sunview. Default mode is "pre".  (As some of these
      modes rely on external libraries, they may not be builtin by default,
      and not be available in prebuilt binaries supplied e.g. in Linux
      distributions. The usage messsage generated when hp2xx is invoked
      without parameters will always list exactly those modes that are
      actually available.)

      If you use a raster format, the picture is rasterized by default into
      a 75 DPI resolution image. Use option -d DPI_value to change the

                                    - 3 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

      resolution, e.g. -d300 will cause a HP LJ-II compatible 300 dpi
      rasterization. There is a way of specifying a different resolution for
      y direction: -D DPI_y_value

      Some programs were found to generate HPGL output with too tight
      clipping bounds, which lead, for example, to some parts of text
      characters clipped off.  Use option -e extraclip to add some extra
      amount of space to clip areas to workaround such mistakes.  For
      example, -e 40 will add 40 extra plotter units to every side of
      clipping box which is 1 mm in true size.

      While processing large pictures at high resolution on low-memory
      machines, typically under DOS, the program may start swapping.
      Optionally change the swap file by using -s swapfile, e.g. to speed up
      processing by swapping to a RAM disk.

      Unless the hpgl file specifies its own selection of pen widths and
      colors (for up to 256 pens), a carousel of 8 pens is simulated. You
      can specify pen sizes and colors for each of these pens via options -p
      string and -c string. "string" must consist of 1..8 digits (0-9 for
      size, 0-7 for color).  Digit number n (counting from left) corresponds
      to pen number n.  The digit value is this pen's color or size in
      internal units.  The pen width unit corresponds to 1/10 mm - using pen
      widths beyond 0.9mm is possible by using the letters of the latin
      alphabet, so that A=1mm, B=1.1mm etc. The default size is 1 for all
      pens. Colors are assigned according to: 0=off, 1=black, 2=red,
      3=green, 4=blue, 5=cyan, 6=magenta, 7=yellow.  Examples of use: -
      p22222222 -c33333333 changes all pensizes to 2 units, all colors to
      green -p302 -c407 makes pen #1 a blue pen of size 3 , pen #3 a yellow
      pen of size 2, suppresses all drawing with pen #2, and keeps all other
      pen sizes and colors.  Setting either -p or -c will override the
      equivalent HPGL/2 commands (PC,PW) in the HP-GL file.

      Sometimes, HP-GL files contain several pages of plotter output.  hp2xx
      recognizes the HP-GL commands for "feed-forward", "pause" or "new
      page", and by default draws each image as a separate page (saving to
      sequentially numbered output files, or opening a new preview window
      for each). You can select any particular page range by using option -P
      firstpage:lastpage which causes hp2xx to skip all drawing commands
      except those on the given pages.  Please note that even if only a
      single page is actually drawn, hp2xx will nonetheless process the
      whole HP-GL file. This makes sure that effects of early pages on
      internal modes indeed influence later pages, as on a real plotter.

      Supported vector formats are: TeX/Metafont, emTex-specials, TeX/epic-
      Macros, Autocad DXF CNC G-code XFig 3.2, GnuPlot ASCII, Simplified
      HP_GL, Uniplex RGIP Scalable Vector Graphics (SVG) Adobe PDF(if libpdf
      is available) and -I PostScript.  Use -m mf to convert a HPGL drawing
      into a Metafont character to be included into a TeX document as the
      character "Z" of a special font that you may create. Edit the metafont

                                    - 4 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

      source, e.g., to change the letter "Z" for another, or to change the
      line thickness, which is set to 0.4pt by default.  The other TeX-
      related modes ("cad" for TeXcad compatible code, "em" for employing
      ecial{em:line} macros, and "epic" for drawing lines with macros from
      "epic.sty") address different compromises to cope with TeX's poor line
      drawing capability and are generally not recommended nor fully
      supported. Feel free to experiment with them -- they generate ASCII
      output that should be "input" into TeX/LaTeX documents.

      Use option -p pensize(s) for control over pensize: The actual Metafont
      or PostScript pensize will be "pensize * 0.1 mm", with pensize = 0 - 9
      (0 = no drawing).  The same applies to

      In PostScript mode (-m eps), you may also need to use options -o and
      -O (see below) for proper margins on paper since hp2xx puts your
      picture "flush" to the left and upper paper limit by default.

      The following formats are supported: HP-PCL, Esc/P2, PCX, PIC, IMG,
      JPG, PBM/PPM, PNG, TIFF, and previews. (PNG and TIFF formats rely on
      external libpng,zlib and libtiff, JPG relies on libjpeg. Versions
      built on MS windows systems - or versions linked against libEMF on
      other platforms - may additionally support EMF generation and

      Addition of other formats is made easy for programmers because of
      hp2xx's modular structure. The program allocates a bitmap on a line-
      by-line basis, swapping lines to disk if needed, and plots into this
      bitmap. Depending on the selected format, a conversion module is then
      activated, which can easily be replaced by other converters. Add more
      formats if you like!

      Option -p pensize(s) controls the size (in pixels) of the virtual
      plotting pen. The only implemented shape of the pen tip is a square of
      the given length.  pen sizes of 5...9 units will be acccepted but
      replaced by 4 units.  Specifying -p4 when in 75 DPI mode will make
      pretty clumsy pictures, while you may prefer -p2 over -p1 when in 300

      PCX: The size of a PCX picture is controlled via its specified height
      and the current DPI value. To create a high-resolution PCX image, just
      increase the DPI value as desired. PCX format does not accept offsets.

      IMG: See PCX.

      PBM/PPM: See PCX for options. If your hpgl file is not monochrome,
      hp2xx will automatically create a PPM (portable pixmap) file instead
      of a PBM bitmap. (Use -c11111111 to force generation of PBM from a
      color hpgl file).  Depending on the compile-time option PBM_ASCII,
      hp2xx will create ascii or binary pbm (ppm) files - usually the more
      efficient binary format should be preferred.

                                    - 5 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

      (Unsupported options) PIC, PAC: ATARI ST screens (640x400 pixels) can
      easily be dumped to files. Programs such as STAD accept graphics by
      including such screen dump files.  Graphics filling more than one
      screenful may be split into screen-size blocks and loaded/mounted
      blockwise.  hp2xx converts to ATARI bitmap format by trying to fit the
      resulting picture into a single screen equivalent (max. 400 rows, max.
      80 Bytes (640 pixel) per row). If it succeeds, hp2xx produces a single
      output file. Specify ONLY its base name (option -f), since hp2xx adds
      the file extension ".pic" or ".pac" automatically. Do NOT try to work
      on more than one HPGL file simultaneously! Do NOT use more than 6
      characters for the file name, and avoid digits. If more screen blocks
      are required horizontally and/or vertically, hp2xx will automatically
      split the picture into separate files, counting them columnwise (top-
      to-bottom and left-to-right), adding a two-digit number to the given
      file name. A maximum of 10 columns is supported.  The picture is
      padded with background color at its right and lower margins, if
      needed. PAC features file compression, PIC does not.

      PCL: HP-PCL Level 3 format, most useful for direct printer output. Due
      to this action, there have been added some extra flags and options:
      Use flag -i to send a printer initialization sequence before the
      actual image. Among other things, this will instruct the printer which
      paper size to use. Flag -F adds a Form Feed (FF, hex 0C) after the
      image is completed, which is what you may want most of the time.
      However, overlay printing of several files is feasible by omitting -F.

      For additional control of the picture's final position on paper, you
      may add x or y offsets using -o X_offset or -O Y_offset. E.g., -o 20
      -O and 20 mm additional left margin. Option -C modifies these offsets
      to center the picture within the frame defined by -w -h.

      The option -C will attempt to center the drawing on the paper
      automatically. Note also that hp2xx now honors any PS (page size)
      commands in the hpgl file, which can also create white space around
      the actual drawing.

      The option -N will make hp2xx ignore any PS commands given in the hpgl
      file, and recalculate the image size based on the actual geometry

      The option -n will make hp2xx ignore any polygon filling commands,
      rendering only their outlines. This may serve both as a work-around
      for hp2xx' limited polyfill support, and improve clarity of thumbnail
      images of PCB designs and the like.

      The option -M pennumber will remap any color or drawing commands from
      pen 0 to the specified pen (which should typically be otherwise unused
      in the drawing). Historically, selecting pen 0 instructed a pen
      plotter to put away the pen and stop drawing, while modern inkjet
      plotters can use it like any other color. Due to this ambiguity, hp2xx

                                    - 6 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

      will draw the background of raster graphics in the pen 0 color, unless
      this option is used.

      For DeskJet / DeskJet Plus / DeskJet 500 / Deskjet 550 printers, there
      are some special printer commands. Activate them with option -S n. n=0
      switches them off, n=1 activates black/white mode, n=3 (DJ500C and
      DJ550 only) supports CMY color data, n=4 (DJ550C only) supports CMYK
      color data.  Any n!=0 activates PLC data compression (TIFF mode: 2).

      Esc/P2: This is the control language used in the Epson Stylus family
      of inkjets. hp2xx currently does not address more than one line of
      nozzles in the print head, so printing, while exact, is extremely
      slow. Users might prefer piping the output of the PostScript module
      through ghostscript until this issue is resolved.

      PNG: Support for the Portable Network Graphics format relies on libpng
      which is available from

      PRE: Preview on all machines. Use options -h -w -o -O -C to define the
      screen size and position of your output (-o -O -C may not always
      apply).  Under X11, you can pan around an image that is larger than
      the screen size by 'dragging' it with the mouse (pressing button 1
      while moving the mouse in the desired direction). Any other mouse
      button or keyboard key will terminate the preview.  For VGA cards
      (DOS), option -V VGAmode gives you a simple way to utilize SVGA modes.
      Please take care not to define larger windows than your graphics
      device can handle, as the results are unpredictable. As hp2xx uses
      standard BIOS calls to set pixels on VGA cards (slow but portable),
      you can select any hi-res mode supported by your system by simply
      specifying the mode byte with this option.

      TIFF: The tagged image file format is supported by most graphics and
      image manipulation programs. Support for TIFF in hp2xx relies on the
      TIFF library available from, which offers several
      means of image compression.  The -S commandline option selects between
      them as follows: -S 0 or -S 1: no -S 2: RLE (run length encoding) -S
      3: Group 3 FAX (monochrome) -S 4: Group 4 FAX (monochrome) -S 5: GIF
      (not available by -S 6: JPEG ('old' TIFF 6.0 -S 7: JPEG -S 8: deflate

       % hp2xx -m pcx -f my_output.pcx -d300 -p2222 -h50 -a 1.2 my_input.hp

         creates a PCX file at 300 DPI of height 50 mm, using an aspect factor
         of 1.2 and a pen size of 2 pixels for pens 1-4.

       % my_hpgl_generator | hp2xx -f- -o20 -O30 -F -q | lpr -P my_PCL_printer

         HPGL output is piped through hp2xx; the resulting PCL code is piped to
         the printer queue, giving an image of height 100 mm at 75 DPI.
         An additional left margin of 20mm and upper margin of 30mm is created.

                                    - 7 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

         A formfeed will be added (handy if your printer queue does not).

       % hp2xx my_input.hp

         Preview on screen or into window.

       Heinz W. Werntges, Physikal. Biologie, Geb. 26.12,
       D-40225 Duesseldorf, Germany.

       Martin Kroeker, daVeg GmbH,
       Schottener Weg 2
       D-64289 Darmstadt, Germany. or
       ATARI features & PIC, PAC, IMG modes are due to Norbert Meyer, Duesseldorf.
       AMIGA version & PBM mode are due to Claus Langhans, Kelkheim (Ts.)
       X11 previewer is due to Michael Schoene, Duesseldorf.
       Thanks for VAX support and a lot of testing to
         Michael Schmitz & Gerhard Steger, Duesseldorf
       Many OS/2 helps were due to Host Szillat, Berlin.
       (Later contributors: See TEXINFO file).

      The number of ignored and/or unknown HPGL commands is given. You will
      be informed if swapping starts. Progress is indicated by a logarithmic
      count of internal vectors during scanning and plotting, or by dots
      during (raster mode) output, where each dot corresponds to 10 scan

      There still are many non-implemented HPGL commands.

      The color assignment of some X11 servers leaves something to be

      Color is only partially supported (not all possible formats).

      VGA preview: Color "magenta" shows as brown on some VGA cards.

      To match the specified sizes on your display during preview, you may
      have to calibrate it using -d -D, e.g. by overwriting the 75 DPI

      Only little testing has been done on TeX-related and ATARI formats, so
      be prepared for bugs there, and PLEASE report them --  thank you!

      bm2font(1), F. Sowa's raster-to-TeXfont converter.

                                    - 8 -          Formatted:  July 13, 2020

 hp2xx(1)                                                           hp2xx(1)
                                 6 May 2001

                                    - 9 -          Formatted:  July 13, 2020