PDF2FAX(8C)

πŸ“¦
version 7.0.11 Β· 4 versions
, in fedora 43, fedora 44, opensuse-leap 16.0

🌸 PDF2FAX πŸ’…

okay bestie, sit DOWN, because we're talking about pdf2fax β€” a section 8C HylaFAX situation β€” and she is lowkey iconic once you get to know her. Let's go. ✨


πŸ¦‹ NAME πŸ¦‹

pdf2fax β€” image a Portable Document Format file so it can be sent as a facsimile, courtesy of HylaFAX. periodt. πŸ’–


✨ SYNOPSIS ✨

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

πŸ‘‘ DESCRIPTION πŸ‘‘

so pdf2fax takes Portable Document Format (PDF) input and spits out a TIFF Class F image file that's all set for facsimile transmission. she's usually called by the HylaFAX scheduler process, faxq(8C). and the actual PDF imaging? that's typically done with the freely available Ghostscript software. no cap. πŸŽ€

plot twist though β€” pdf2fax is actually a link (symbolic or otherwise) to whichever script matches the PDF imaging tool you're using. that link gets set up when the faxsetup(8C) script runs to configure a HylaFAX server machine for use. the way that she's literally just vibing as a symlink. πŸ¦‹

got input files full of PDF? pass them on the command line. if you don't give her any, she'll read from standard input instead. main character energy fr fr. πŸ’…

by default, pdf2fax 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. and heads up: horizontal resolution is always 204 dpi. always. command line options can pick a different vertical resolution and page dimensions though. 🌸

if no filename is given, pdf2fax writes her output to a file named pdf.fax. want a different name? that's what -o is for. 🫢

by default, output gets compressed with the standard Group 3 1D-encoding scheme, with EOL codes padded to byte boundaries. if you throw in the -2 option, output is encoded with the optional Group 3 2D-encoding scheme instead (EOL codes are still padded to byte boundaries, don't worry). πŸ”₯

and here's a fun one β€” this script can modify outgoing facsimile, like watermarking. to do that, create a shell script etc/FaxModify in the spooling area that alters the document. yup, that's the whole thing. πŸ’œ

also worth knowing: bin/pdf2fax is usually just a link to a shell script that invokes the appropriate PDF RIP to do the work. πŸ‘‘


πŸ’… OPTIONS πŸ’…

here's everything she recognizes, bestie:

  • -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. (heads up: this might be 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 max number of pages permitted in the output file. if the input document has more pages than that, processing aborts. πŸ’€
  • -o file β€” write output to the specified file instead of the default pdf.fax filename. 🫢
  • -w width β€” set the output page width, in pixels. default is pages that are 1728 pixels wide. πŸ“
  • -l length β€” set the output page length in millimeters. default is pages that are 297 millimeters long. πŸ“
  • -r vres β€” set the vertical resolution, in lines/inch, at which to image the PDF. πŸ‘‘

🧚 RUNTIME ENVIRONMENT 🧚

before user-supplied PDF gets passed to the PDF interpreter, a limited number of operators are defined. these are operators commonly found in a LaserWriter printer and (sometimes) generated by Macintosh-based applications. iykyk. πŸ’–

the default Display PDF-based execution environment includes support for these fonts, and yes, we're listing all of them because every single one matters:

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

ngl, that's the same set of fonts supported by the DPS extension to the X server. 🌸

the default Ghostscript-based environment is more uncertain β€” so consult the Ghostscript documentation for info on what fonts are available. it's giving mysterious. πŸ™ˆ


πŸ’€ BUGS πŸ’€

output from the Display PDF version of this command is encoded according to the Display PDF binary encoding protocol.
Ghostscript-based versions of this program fail to exit with non-zero status when an invalid PDF document is processed. this makes it problematic for the HylaFAX queue manager to figure out when a problem arises while preparing a job for transmission. not me crying over exit codes 😭

🌈 SEE ALSO 🌈

sendfax(1), faxq(8C), hylafax-server(5F) β€” go read those too, bestie, they're all part of the same little universe. 🫢


and that's the whole page, no skips, no skimming. πŸ’– this one's from March 08, 2001, and it's the PDF2FAX(8C) page, so shoutout to the HylaFAX crew for a doc that has been serving looks since the early 2000s. slay. πŸ’…βœ¨

πŸ“¦ where this page comes from