PS2FAX(8C)

📦
version 7.0.11 · 4 versions
, in fedora 43, fedora 44, opensuse-leap 16.0

ps2fax 💖 the 8C manual page, bestie — sit down, we're rendering POSTSCRIPT into faxes 💅


✨ NAME ✨

ps2fax — image POSTSCRIPT® for facsimile transmission by HylaFAX 🎀


🦋 SYNOPSIS 🦋

/var/spool/hylafax/bin/ps2fax [ options ] [ files... ]

💖 DESCRIPTION 💖

Okay so here's the tea: ps2fax takes POSTSCRIPT input and spits out a TIFF Class F image file that's suitable for facsimile transmission. It doesn't usually get called by a human — it's normally invoked by the HylaFAX scheduler process, faxq(8C). On Silicon Graphics' IRIX systems, this application is based on Adobe's Display POSTSCRIPT software. On other machines, POSTSCRIPT imaging is typically done using the freely available Ghostscript software. ✨

Real talk: ps2fax is actually a link (symbolic or otherwise) to the script that's appropriate for the POSTSCRIPT imaging tool. That link gets set up when the faxsetup(8C) script is run to configure a HylaFAX server machine for use. So the file you're looking at is lowkey just a vibe-matched pointer. 😌

You can hand it input files containing POSTSCRIPT right on the command line. If you don't give it any, then ps2fax reads from standard input. No cap.

By default, ps2fax generates a 98 line/inch output document whose page width is 1728 pixels and page length is 297 mm — that's a standard A4 page at low resolution, bestie. Horizontal resolution is always 204 dpi, no negotiating. Command line options may be used to select alternate vertical resolution and page dimensions. 🎀

If no filename is given, ps2fax writes its output to a file named ps.fax; the -o option can be used to specify an alternate filename. 📁

By default, output is compressed using the standard Group 3 1D-encoding scheme, with EOL codes padded to byte boundaries. If the -2 option is specified, output is encoded with the optional Group 3 2D-encoding scheme (EOL codes are still padded to byte boundaries). Two flavors, both valid, we love options. 🍓

This script can modify outgoing facsimile — watermarking, that kind of thing. To do this, create a shell script etc/FaxModify in the spooling area that alters the document. ✨

Note that bin/ps2fax is usually just a link to a shell script that invokes the appropriate POSTSCRIPT RIP to do the work. It's giving middle-manager energy and honestly? iconic for it. 💅

🌈 OPTIONS 🌈

The following operations are recognized:

  • -1 — Write Group 3 1D-encoded data to the output file.
  • -2 — Write Group 3 2D-encoded data to the output file.
  • -3 — Write Group 4 MMR-encoded data to the output file.
  • -color — Write color data to an output file (possibly a separate file if Group 3 or Group 4 data is also being output).
  • -i jobid — How the server references the associated Job ID number.
  • -m pages — Set the maximum number of pages that are permitted in the output file. If more pages are present in the input document, then abort processing.
  • -o file — Write output to the specified file instead of the default ps.fax filename.
  • -w width — Set the output page width, in pixels. By default, pages are 1728 pixels wide.
  • -l length — Set the output page length in millimeters. By default, pages are 297 millimeters long.
  • -r vres — Set the vertical resolution, in lines/inch, at which to image the POSTSCRIPT.

🌸 RUNTIME ENVIRONMENT 🌸

Before user-supplied POSTSCRIPT is passed to the POSTSCRIPT interpreter, a limited number of operators are defined. These operators are operators commonly found in a LaserWriter printer and (sometimes) generated by Macintosh-based applications. 👑

The default Display POSTSCRIPT-based execution environment includes support for the following fonts:

AvantGarde-Book           Helvetica-Bold                  Palatino-BoldItalic
AvantGarde-BookOblique    Helvetica-BoldOblique           Palatino-Italic
AvantGarde-Demi           Helvetica-Narrow                Palatino-Roman
AvantGarde-DemiOblique    Helvetica-Narrow-Bold           StoneSerif
Bookman-Demi              Helvetica-Narrow-BoldOblique    Symbol
Bookman-DemiItalic        Helvetica-Narrow-Oblique        Tekton
Bookman-Light             Helvetica-Oblique               Times-Bold
Bookman-LightItalic       Lithos-Bold                     Times-BoldItalic
Courier                   NewCenturySchlbk-Bold           Times-Italic
Courier-Bold              NewCenturySchlbk-BoldItalic     Times-Roman
Courier-BoldOblique       NewCenturySchlbk-Italic         ZapfChancery-MediumItalic
Courier-Oblique           NewCenturySchlbk-Roman          ZapfDingbats
Helvetica                 Palatino-Bold

Note that this is the same set of fonts supported by the DPS extension to the X server. 🫶

The default Ghostscript-based environment is more uncertain; consult the Ghostscript documentation for information on what fonts are available. (Ghostscript said "figure it out yourself, bestie" 😭)


🎀 FILES 🎀

  • /var/spool/hylafax/etc/dpsprinter.ps — POSTSCRIPT code read at startup for DPS
  • /usr/lib/DPS/default.dps_vm — startup VM file for DPS
  • /usr/lib/DPS/outline — Type 1 fonts for DPS
  • /usr/lib/DPS/prebuilt — prebuilt versions of fonts for DPS

💀 BUGS 💀

  • Output from the Display POSTSCRIPT version of this command is encoded according to the Display POSTSCRIPT binary encoding protocol.
  • No prebuilt bitmap fonts are currently available for the DPS-based imager; this would greatly improve legibility at low resolutions, as the rendering of outline fonts at 98 lpi is particularly poor. 😭
  • Both DPS- and Ghostscript-based versions of this program fail to exit with non-zero status when an invalid POSTSCRIPT document is processed; this makes it problematic for the HylaFAX queue manager to determine when a problem arises when preparing a job for transmission. 🙈
Fr fr, that last one is a whole mood and not in a good way — bad POSTSCRIPT goes in, and the exit status just… doesn't tell on it. 💀

⭐ SEE ALSO ⭐

sendfax(1), faxq(8C), hylafax-server(5F)


That's the whole page, bestie! 🦋 This one's from August 26, 1996 and it lives under PS2FAX(8C) — go render something gorgeous, mwah 💖✨

📦 where this page comes from