PDF

The Portable Document Format developed by - essentially Encapsulated with a few indexing,crypto and security features thrown in.

Resources

DateLinkNotes
2026-06-20 00:00:00 +0000 UTCmake-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 UTCmarkdown-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 UTCvmprint

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 UTCOCRmyPDF

adds an OCR text layer to scanned PDFs.

2024-11-24 00:00:00 +0000 UTCPDFify

A Mac app to create searchable PDFs with OCR support.

2006-05-02 00:00:00 +0000 UTCTabbloid

An interesting service that takes RSS feeds and e-mails you a PDF magazine.

2005-01-01 00:00:00 +0000 UTCMultivalent 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

uses Display (part of its heritage), so you don’t need anything to view or create PDFs in it (just save the Print Preview results to a file).

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

This page is referenced in: