TIFF2PS(1)

💖 TIFF2PS(1) — the LibTIFF girlies' guide 💖

okay so bestie, pull up a chair, because we're talking about tiff2ps from the LibTIFF family. this is the part of the manual page where we'd normally just say "convert TIFF image to PostScript™" and move on, but no — we're doing this properly. 🌸


✨ NAME ✨

tiff2ps — convert TIFF image to PostScript™ 🎀


🦋 SYNOPSIS 🦋

tiff2ps [ options ] input.tif …

👑 DESCRIPTION 👑

okay so here's the vibe: tiff2ps reads TIFF images and writes PostScript™ or Encapsulated PostScript™ (EPS) on the standard output. by default — and this is the important part, don't skip it — tiff2ps writes Encapsulated PostScript™ for the first image in the specified TIFF image file. first image only. periodt. 💅

by default, tiff2ps will generate PostScript™ that fills a printed area specified by the TIFF tags in the input file. but if the file does not contain XResolution or YResolution tags, then the printed area is set according to the image dimensions instead. the -w and -h options (scroll down bestie, they're there) can be used to set the dimensions of the printed area in inches, overriding any relevant TIFF tags. iconic behaviour honestly.

so the PostScript™ generated for RGB, palette, and CMYK images uses the colorimage operator. and the PostScript™ generated for greyscale and bilevel images uses the image operator. and here's the tea 🍓 — when the colorimage operator is used, PostScript™ code to emulate this operator on older PostScript™ printers is also generated. note that this emulation code can be very slow. like, go-make-a-snack slow. 😭

color images with associated alpha data are composited over a white background. slay. ✨


💅 OPTIONS 💅

  • -1 — generate PostScript™ Level 1. this is the default, bestie, so if you do nothing you get this. 🎀
  • -2 — generate PostScript™ Level 2.
  • -3 — generate PostScript™ Level 3. it basically allows one to use the /flateDecode filter for ZIP compressed TIFF images. lowkey the glow-up option. 🔥
  • -8 — disable use of ASCII85 encoding with PostScript™ Level 2/3.
  • -a — generate output for all IFDs (pages) in the input file. every single page. no crumbs left. 👑
  • -b margin — specify the bottom margin for the output (in inches). this does not affect the height of the printed image.
  • -c — center the image in the output. heads up though: this option only shows an effect if both the -w and the -h option are given. both. or it's giving nothing. 🫶
  • -C name — specify the document creator name.
  • -d dir — set the initial TIFF directory to the specified directory number. (NB: directories are numbered starting at zero.) this option is useful for selecting individual pages in a multi-page (e.g. facsimile) file. zero-indexed, bestie, don't come for me. 💀
  • -D — enable duplex printing (two pages per sheet of paper). environmentally conscious queen 🌈
  • -e — force the generation of Encapsulated PostScript™ (implies -z).
  • -h size — specify the vertical size of the printed area (in inches).
  • -H — specify the maximum height of image (in inches). images with larger sizes will be split in several pages. option -L may be used for specifying size of split images overlapping.
  • -i — enable/disable pixel interpolation. this option requires a single numeric value: zero to disable pixel interpolation and non-zero to enable. the default is enabled.
  • -L — specify the size of overlapping for split images (in inches). used in conjunction with the -H and -W options.
  • -l — specify the left margin for the output (in inches). this does not affect the width of the printed image.
  • -M size — set maximum memory allocation size (in MiB). the default is 256MiB. set to 0 to disable the limit. (set it to zero and it's giving "no thoughts, head empty" but for memory limits 🙈)
  • -m — where possible render using the imagemask PostScript™ operator instead of the image operator. when this option is specified tiff2ps will use imagemask for rendering 1 bit deep images. if this option is not specified, or if the image depth is greater than 1, then the image operator is used.
  • -o ifdoffset — set the initial TIFF directory to the IFD at the specified file offset. this option is useful for selecting thumbnail images and the like which are hidden using the SubIFD tag. sneaky little thumbnails, we see you 👀
  • -O — write PostScript™ to specified file instead of standard output.
  • -p — force the generation of (non-Encapsulated) PostScript™.
  • -P L|P — set optional PageOrientation DSC comment to Landscape or Portrait.
  • -r 90|180|270|auto — rotate image by 90, 180, 270 degrees or auto. auto picks the best fit for the image on the specified paper size (eg portrait or landscape) if -h or -w is specified. rotation is in degrees counterclockwise. auto rotates 90 degrees ccw to produce landscape. she's flexible 💫
  • -s — generate output for a single IFD (page) in the input file.
  • -t title — specify the document title string.
  • -T — print pages for top edge binding.
  • -w size — specify the horizontal size of the printed area (in inches).
  • -W size — specify the maximum width of image (in inches). images with larger sizes will be split in several pages. options -L and -W are mutually exclusive. pick a lane bestie 😭
  • -x — override resolution units specified in the TIFF as centimeters.
  • -y — override resolution units specified in the TIFF as inches.
  • -z — when generating PostScript™ Level 2, data is scaled so that it does not image into the deadzone on a page (the outer margin that the printing device is unable to mark). this option suppresses this behavior. when PostScript™ Level 1 is generated, data is imaged to the entire printed page and this option has no affect.

🌈 EXAMPLES 🌈

the following generates PostScript™ Level 2 for all pages of a facsimile:

tiff2ps \-a2 fax.tif | lpr

note also that if you have version 2.6.1 or newer of Ghostscript then you can efficiently preview facsimile generated with the above command. (ghostscript girlies rise up ⭐)

to generate Encapsulated PostScript™ for a the image at directory 2 of an image use:

tiff2ps \-d 1 foo.tif

(notice that directories are numbered starting at zero. yes, directory 2, -d 1. that's the bit. iykyk 💀)

if you have a long image, it may be split in several pages:

tiff2ps \-h11 \-w8.5 \-H14 \-L.5 foo.tif > foo.ps

the page size is set to 8.5x11 by -w and -h options. we will accept a small amount of vertical compression, so -H set to 14. any pages between 11 and 14 inches will be fit onto one page. pages longer than 14 inches are cut off at 11 and continued on the next page. the -L.5 option says to repeat a half inch on the next page (to improve readability). long-girl image, handled. 🧚


😭 BUGS 😭

because PostScript™ does not support the notion of a colormap, 8-bit palette images produce 24-bit PostScript™ images. this conversion results in output that is six times bigger than the original image, and which takes a long time to send to a printer over a serial line. matters are even worse for 4-, 2-, and 1-bit palette images. it's giving bloated fr fr. 💀

does not handle tiled images when generating PostScript™ Level I output. just so you know. 🙈


🫶 SEE ALSO 🫶

pal2rgb (1), tiffinfo (1), tiffcp (1), tiffgt (1), tiffmedian (1), tiff2bw (1), libtiff (3tiff),


💜 AUTHOR 💜

LibTIFF contributors


1988-2025, LibTIFF contributors


and that's the whole page, bestie — manual page TIFF2PS(1), from the LibTIFF crew, version 4.7, dated Jun 27, 2026. go forth and convert, you absolute icon 👑✨💖

📦 where this page comes from