The Portable Document Format developed by Adobe - essentially Encapsulated PostScript with a few indexing,crypto and security features thrown in.
Resources
| Date | Link | Notes |
|---|---|---|
| 2026-06-20 00:00:00 +0000 UTC | make-look-scanned | a CLI and browser/WASM tool that degrades PDFs to mimic physical scans, adding skew, grain, blur, shadows, and compression artifacts |
| 2026-03-01 00:00:00 +0000 UTC | markdown-to-pdf | Markdown-to-PDF pipeline implemented in TypeScript so you can render PDFs without spinning up a browser. |
| 2026-02-28 00:00:00 +0000 UTC | vmprint | A pure-JS, zero-dependency typesetting engine that renders bit-perfect PDFs across any runtime without needing Headless Chrome. |
| 2025-12-26 00:00:00 +0000 UTC | OCRmyPDF | adds an OCR text layer to scanned PDFs. |
| 2024-11-24 00:00:00 +0000 UTC | PDFify | A Mac app to create searchable PDFs with OCR support. |
| 2006-05-02 00:00:00 +0000 UTC | Tabbloid | An interesting service that takes RSS feeds and e-mails you a PDF magazine. |
| 2005-01-01 00:00:00 +0000 UTC | Multivalent PDF Tools | written in Java |
| PDF Creator | ||
| Foxit PDF Viewer | very fast, very small, somewhat buggy image display and font rendering. Lets you remove all toolbars, advertising, etc. | |
| RedMon | The ancient Windows print redirector | |
| CutePDF | works properly under Terminal Services, Citrix, etc. (my current choice) | |
| FPDF | a PHP class to generate PDFs (Ruby port) | |
| Primo PDF | doesn’t work properly under Terminal Services for some reason | |
| PrinceXML | converts XHTML into hyperlinked PDF documents | |
| PDFTools | for Windows, allows for combining and manipulating multiple files. | |
| Ghostscript | The one that started it all |
Mac OS X uses Display PostScript (part of its NeXT heritage), so you don’t need anything to view or create PDFs in it (just save the Print Preview results to a file).
Samba Ghostscript Printer
[smbpdf]
comment = PDF Generator
path = /var/spool/samba
printable = Yes
print command = gs -dNOPAUSE -dBATCH -q - \
sDEVICE=pdfwrite -sOutputFile=%H/%s.pdf; rm %s
Compression
Here’s a plugin for PDF compression that I used under Leopard, but you can just do:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH –sOutputFile=file-out.pdf file-in.pdf
#…or:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dColorConversionStrategy=/Gray -dProcessColorModel=/DeviceGray -dNOPAUSE -dQUIET -dBATCH -sOutputFile=file-out.pdf file-in.pdf
Simulating a Scanned Image
#!/bin/sh
ROTATION=$(shuf -n 1 -e ‘-‘ ‘’)$(shuf -n 1 -e $(seq 0.05 .5))
convert -density 150 $1 \
-linear-stretch ‘1.5%x2%’ \
-rotate ${ROTATION} \
-attenuate ‘0.01’ \
+noise Multiplicative \
-colorspace ‘gray’ $2
Editing PDFs
I’ve found that LibreOffice Writer has the ability to edit PDFs in-line to some degree (thanks to its integration with Draw). It will not preserve font names or styles, though.
Affinitiy Designer, however, can do so much better (although it will not deal with embedded fonts)
Removing Metadata
You can tweak or remove document metadata by using a pdfmarks file with Ghostscript:
[ /Title (Document title)
/Author (Author name)
/Subject (Subject description)
/Keywords (comma, separated, keywords)
/ModDate (D:20061204092842)
/CreationDate (D:20061204092842)
/Creator (application name or creator note)
/Producer (PDF producer name or note)
/DOCINFO pdfmark
…and combining it like this:
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf original.pdf pdfmarks
Removing Passwords
The qpdf utility (some assembly required) can do it cleanly like so:
qpdf —password=foobar —decrypt orig.pdf new.pdf