11 tools
Low-level, content-preserving PDF structure tool: linearizes ('fast web view'), encrypts/decrypts, splits and merges files, inspects/edits PDF object structure, and repairs damaged files. Explicitly does not render pages or extract text/content.
C++PDF editing library, GUI, and tools for viewing and editing the internal structure of PDF documents — useful for inspecting malformed/problematic PDFs. A Flatpak build is available for modern Linux.
Displays and inspects individual text boxes within PDF documents by converting them to pdf2xml format (via poppler-utils) and rendering the boxes with D3.js in a browser — useful for examining OCR-processed 'sandwich' PDFs before extraction. Companion tool to pdftabextract, letting you view the row/column grids it detects.
OCaml parser and validator for PDF file structure, with CLI analysis commands and an interactive console for exploration.
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.
Pythonic wrapper around qpdf for reading, writing, and manipulating PDFs: merge, split, rotate, rearrange, and delete pages; read/write XMP and DocumentInfo metadata (auto-synced); losslessly extract or replace embedded images (preserving original JPEG compression); open password-protected files and save with RC4, AES-128, or AES-256 encryption (or remove it); linearize for 'fast web view'; direct object-level/content-stream access; automatic repair on open; access to qpdf's Job API; and Jupyter notebook preview rendering.
PythonPart of the Didier Stevens Suite of security tools: parses a PDF document to identify and inspect its fundamental elements/objects, with an option to search for specific strings within indirect objects — used for PDF malware analysis and forensic triage. Public domain.
PythonPDF forensics/analysis tool that visualizes a PDF's internal tree-like object structure as large, color-coded diagrams, scans embedded binary streams for suspicious/malicious content using YARA rules (via the companion Yaralyzer), and force-decodes suspicious font binaries.
PythonCLI tool that checks whether PDF files are 'born-digital' (created directly from a digital source) versus scanned images, scanning single files or whole directories (recursively) and reporting results as TSV/CSV.
Pure-Ruby framework for parsing, modifying, and creating PDF files, with lazy on-demand parsing: compression filters with predictors, RC4/AES encryption (including Revision 6), digital signatures and usage rights, file attachments, AcroForm/XFA forms, and object streams. Ships CLI tools including `pdfcop` for detecting dangerous PDF content (not a full malware-analysis/forensics suite by the author's own description) plus decompression, decryption, encryption, resource-extraction, and metadata-inspection utilities.
Rust library to read, manipulate, and write PDF files: stable reading with examples for extracting content/metadata/names/text, plus Pathfinder integration for rendering and a companion `inspect-prim` tool for hierarchically exploring PDF structure. Modification and writing support are still experimental.