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

FreeBSD Manual Pages


home | help
hp2xx(1)		    General Commands Manual		      hp2xx(1)

       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
	 -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  raster-
       file  formats.  Currently, its HPGL parser recognizes a large subset of
       HPGL/2.	Some high-level	functions related to polygon filling are miss-
       ing.   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

       The  program  scans  the	current	HPGL source, converts all drawing com-
       mands into elementary vectors, saves these in  a	 temporary  file,  and
       concurrently determines the maximum coordinate range used. It then pro-
       cesses the vectors by mapping them into a user-defined coordinate  sys-
       tem, 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 pic-
       ture; 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

       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 plot-
       ter. 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 land-
       scape 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 diagnos-
       tic 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  gen-
       erated  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 overwritten.

       Use  option -m mode to select the program mode, i.e. the	output format.
       Currently supported: mode = "mf"	(Metafont), "em"  (emTeX  cial{}  com-
       mands),	"epic"	(line drawing using TeX	macros within epic.sty), "eps"
       (PostScript), "dxf" (Autocad), "emf/emp"	(MS Enhanced Metafile /	Print-
       ing  -  available  in  Windows-built executables	only), "svg" (Scalable
       Vector Graphics), "fig" (XFig 3.2), "gpt" (GnuPlot ascii), "hpgl" (sim-
       plified	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	/ Por-
       table PixMap for	color plots), "pcx" (PC-Paintbrush  format,  also  ac-
       cepted  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 op-
       tion "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  resolu-
       tion,  e.g.  -d300  will	cause a	HP LJ-II compatible 300	dpi rasteriza-
       tion. There is a	way of specifying a different resolution for y	direc-
       tion: -D	DPI_y_value

       Some  programs  were found to generate HPGL output with too tight clip-
       ping 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  ma-
       chines, 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 col-
       ors (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	inter-
       nal  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  al-
       phabet, 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 ex-
       cept 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 in-
       deed 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
       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-re-
       lated  modes  ("cad"  for  TeXcad  compatible  code, "em" for employing
       cial{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  sup-
       ported. 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 printing.)

       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  bit-
       map.  Depending on the selected format, a conversion module is then ac-
       tivated,	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 plot-
       ting 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 DPI.

       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 bi-
       nary format should be preferred.

       (Unsupported options) PIC, PAC: ATARI ST	screens	(640x400  pixels)  can
       easily be dumped	to files. Programs such	as STAD	accept graphics	by in-
       cluding such screen dump	files.	Graphics filling more than one screen-
       ful  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 pic-
       ture 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	 back-
       ground  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 im-
       age.  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, over-
       lay 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
       30 will give you	30 mm additional top margin 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 automati-
       cally.  Note  also that hp2xx now honors	any PS (page size) commands in
       the hpgl	file, which can	also create  white  space  around  the	actual

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

       The option -n will make hp2xx ignore any	polygon	filling	commands, ren-
       dering only their outlines. This	may serve both as  a  work-around  for
       hp2xx'  limited	polyfill support, and improve clarity of thumbnail im-
       ages 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 will draw the
       background of raster graphics in	the pen	0 color, unless	this option is

       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 noz-
       zles 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  ap-
       ply).   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 compression	-S 2: RLE (run	length	encod-
       ing)  -S	 3: Group 3 FAX	(monochrome) -S	4: Group 4 FAX (monochrome) -S
       5: GIF (not available by	default, because of the	UNISYS patent)	-S  6:
       JPEG ('old' TIFF	6.0 style) -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.
	  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 dur-
       ing (raster mode) output, where each dot	corresponds to 10 scan lines.

       There still are many non-implemented HPGL commands.

       The color assignment of some X11	servers	leaves	something  to  be  de-

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

       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.

				  6 May	2001			      hp2xx(1)


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

home | help