← Back to Open-Source PDF Software

Open-Source PDF Software Capable of Extracting Fonts from PDFs

List or extract font resources embedded in a PDF

5 tools

Command Line

Poppler

CliLibrary

PDF rendering library and command-line suite (pdftotext, pdfimages, pdftoppm, pdftocairo, pdftohtml, pdftops, pdfinfo, pdffonts, pdfdetach, pdfattach, pdfseparate, pdfunite, pdfsig) covering text/image extraction, page rendering, format conversion, metadata, attachments, and signature verification.

Command Line

Xpdf

CliGui

PDF viewer plus command-line tools (pdftotext, pdftops, pdftoppm, pdftopng, pdftohtml, pdfinfo, pdfimages, pdffonts, pdfdetach) for viewing PDFs and converting them to text, PostScript, image, or HTML, plus metadata, image, font, and attachment extraction.

Go

pdfcpu

CliLibrary

Go PDF processor (CLI + library) supporting PDF up to 2.0 (ISO 32000-2): validate, optimize, split, trim, and merge PDFs; encrypt/decrypt; resize, rotate, and crop pages; extract/manipulate images, fonts, and metadata; manage attachments and portfolios; validate, report, and remove digital signatures; add/remove stamps and watermarks; process forms, bookmarks, and annotations; and generate booklets, N-up/N-down layouts, grids, and posters.

Perl

CAM::PDF

Library

Perl module (PDF 1.0–1.5) for reading and writing PDFs: extract/delete/duplicate pages, get page text/content trees, append/prepend pages from other PDFs, handle password-protected documents and permissions, list/add fonts, list/fill form fields, remove annotations, detect linearized PDFs, remove unused objects, and apply compression filters.

Stale
R

pdftools

BindingsLibrary

R bindings for extracting content from PDFs: `pdf_text()` for per-page text, `pdf_info()` for metadata (author, creation date, tags), `pdf_toc()` for table of contents/section headers, `pdf_fonts()` for font info, embedded-attachment access, and `pdf_render_page()` to rasterize pages to bitmap (e.g. PNG/WEBP). Does not handle table extraction (recommends the `tabulizer`/`tabulapdf` package) or OCR of scanned text (recommends the `tesseract` package).