Linux has the best command-line PDF tooling of any operating system and a slightly thinner ecosystem of polished GUI editors than Windows or macOS. The trade-off is fine when you know which tool to reach for. This guide walks through the practical Linux toolkit for editing PDFs, both interactive and scripted.
The GUI options
LibreOffice Draw. Pre-installed on most distributions. Opens any PDF as an editable document with text frames, images, and shapes. Each PDF object becomes a movable element. Re-export as PDF when done. Excellent for moderately-complex layouts; struggles on highly-styled designer PDFs.
Okular. KDE's PDF viewer with strong annotation support. Highlights, notes, drawings, stamps. Free and cross-platform. Best paired with a separate tool for content edits.
Xournal++. Originally a digital notebook; excellent for annotating PDFs with handwritten notes, especially on tablets with stylus input. Saves annotations back into the PDF.
Master PDF Editor. Commercial Linux PDF editor. Closest experience to Adobe Acrobat on Linux. Includes form-field tools, OCR, signing, redaction.
PDF Studio. Cross-platform commercial editor by Qoppa Software. Mature, full-featured.
Inkscape. Vector editor that opens single-page PDFs. Good for editing PDF logos, diagrams, and graphics. Limited for multi-page editing.
Scribus. Desktop publishing tool. Can open PDFs but is optimized for new layouts; better for creating PDFs than editing them.
The CLI superpowers
This is where Linux shines. The CLI tools available are the same ones used by professional workflows worldwide.
Ghostscript. The PostScript / PDF interpreter. Convert, optimize, encrypt, decrypt, rasterize. See our Ghostscript introduction.
poppler-utils. pdftotext, pdftohtml, pdftocairo, pdfinfo, pdfsig, pdfunite, pdfseparate. Lightweight, fast, scriptable. See poppler-utils introduction.
MuPDF / mutool. Lighter and faster than Ghostscript for many tasks. mutool draw, mutool clean, mutool show. See MuPDF introduction.
qpdf. Structural PDF manipulation, split, merge, encrypt, decrypt, linearize, repair. See qpdf introduction.
pdftk. Form-aware PDF toolkit, fill, flatten, stamp, watermark. See pdftk introduction.
OCRmyPDF. Adds searchable text layer to scanned PDFs. Wraps Tesseract with sensible defaults.
exiftool. Reads and writes PDF metadata.
Install on Debian/Ubuntu:
sudo apt install ghostscript poppler-utils mupdf-tools qpdf pdftk \
ocrmypdf exiftool libreoffice okular xournalpp
On Fedora:
sudo dnf install ghostscript poppler-utils mupdf qpdf pdftk \
ocrmypdf perl-Image-ExifTool libreoffice okular xournalpp
Arch:
sudo pacman -S ghostscript poppler mupdf-tools qpdf pdftk \
ocrmypdf perl-image-exiftool libreoffice okular xournalpp
Within a few minutes, you have a PDF toolchain that handles essentially every common operation.
Common operations and their commands
Combine PDFs:
pdfunite file1.pdf file2.pdf file3.pdf combined.pdf
Split a PDF into pages:
pdfseparate input.pdf page-%d.pdf
Or keep a range:
qpdf input.pdf --pages input.pdf 1-10 -- range.pdf
See how to split a PDF.
Rotate pages:
qpdf --rotate=+90:3 input.pdf rotated.pdf
Compress / shrink:
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH \
-sOutputFile=smaller.pdf input.pdf
See reduce PDF file size.
Convert to images:
pdftocairo -png input.pdf page
See how to convert a PDF to image.
Add a password:
qpdf --encrypt user_pw owner_pw 256 -- input.pdf encrypted.pdf
See how to password protect a PDF.
Strip metadata:
exiftool -all= file.pdf
See how to strip metadata from PDF.
Extract text:
pdftotext -layout file.pdf -
OCR a scanned PDF:
ocrmypdf scanned.pdf with-text.pdf
See how to make a PDF searchable OCR.
Editing text content
Linux GUI tools for text editing:
LibreOffice Draw for most documents. Click a text frame, edit, save.
Master PDF Editor for click-and-edit text in arbitrary PDFs. Closest to Acrobat experience.
PDF Studio similar.
Inkscape for single-page logos or diagrams.
For programmatic text edits, pikepdf (Python) with content stream manipulation works but is fragile.
Annotating PDFs
Linux GUI tools for annotation:
Okular, highlights, sticky notes, free drawings, stamps.
Xournal++, best for stylus-based handwriting and inline drawings.
LibreOffice Draw, works but is heavier than dedicated annotators.
Master PDF Editor / PDF Studio, full annotation suites.
For CLI: pdftk's stamp command can add overlays from a separately-authored PDF.
Filling forms
For form filling on Linux:
Okular, supports interactive AcroForms.
LibreOffice Draw, limited form-filling, sometimes flattens fields.
Master PDF Editor / PDF Studio, full form filling and creation.
pdftk fill_form, CLI form filling from FDF. See how to import data into a PDF form.
XFA forms (Adobe LiveCycle) are poorly supported in non-Adobe tools. Most Linux options handle AcroForms only.
Signing PDFs
For signing on Linux:
Okular supports inserting drawn or imported signature images, plus digital signatures with installed certificates.
LibreOffice Draw can apply digital signatures.
pyHanko, Python library for production-grade PDF signing including certified PDFs. See certified PDFs explained.
jsignpdf, Java-based PDF signing tool for command line and GUI.
For browser-based signing without installing anything, Docento.app works in any Linux browser.
Headless PDF generation
Linux is excellent for server-side PDF pipelines:
- wkhtmltopdf (older but reliable), HTML to PDF. See how to convert HTML to PDF.
- WeasyPrint (Python), HTML/CSS to PDF, strong on paged media.
- Chromium headless / Puppeteer / Playwright, modern HTML to PDF using browser engine.
- LaTeX + pdflatex, typographic PDFs.
- Pandoc, Markdown to PDF via LaTeX.
- LibreOffice headless,
libreoffice --headless --convert-to pdf file.docxfor batch document conversion.
Containers (Docker) make these easy to deploy.
A typical Linux workflow
For a one-off PDF edit:
- Open in LibreOffice Draw or Master PDF Editor
- Make edits visually
- Save as PDF
For a batch operation:
- Identify the operation (compress, OCR, encrypt, etc.)
- Pick the right CLI tool from the list above
- Write a small shell script
- Run on the folder of PDFs
For a complex transformation:
- Decompose into steps
- Chain CLI tools with pipes or sequential commands
- Test on a small sample
- Run at scale
Specific recipes
OCR + compress an archive of scanned PDFs:
for f in *.pdf; do
ocrmypdf --optimize 3 "$f" "ocr/$f"
done
Email-prep: smaller files with metadata stripped:
for f in *.pdf; do
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH \
-sOutputFile="email/$f" "$f"
exiftool -all= "email/$f"
done
Batch sign with a single certificate:
for f in *.pdf; do
pyhanko sign addsig --field "Signature" --cert mycert.p12 \
"$f" "signed/$f"
done
Common gotchas
Font substitution. A PDF using a font you do not have may render with substitute glyphs in LibreOffice. Install the font (or its open-source equivalent).
Asian fonts. Chinese, Japanese, Korean PDFs need appropriate fonts. Install via fonts-noto-cjk or similar.
Right-to-left text. Arabic and Hebrew rendering varies by tool. Test in multiple readers.
Form field rendering. Some Linux tools render form fields slightly differently than Acrobat. Test forms in the recipient's expected reader before relying on visual layout.
Annotation compatibility. Annotations made in Okular open differently in Adobe Acrobat. For interoperability, test the workflow end to end.
XFA forms. Stick to AcroForm; XFA support outside Adobe is poor.
Linux distribution differences. Some tools (pdftk-java vs pdftk-server) have minor compatibility differences. Stick with the same version across a workflow.
Where Linux struggles
A few areas where the experience lags:
- Polished WYSIWYG editing, no Linux tool matches Adobe Acrobat Pro for click-and-edit experience. Master PDF Editor and PDF Studio come closest.
- Adobe-specific features, features like Acrobat's Liquid Mode or specific Reader integrations are not available.
- XFA forms, essentially Adobe-only.
- Some enterprise signing workflows, heavy reliance on Acrobat plugins.
For workflows that absolutely need Acrobat, run Acrobat in a Windows VM or via Wine (mixed results). For everything else, Linux has more than enough.
Takeaway
Editing PDFs on Linux works well across both GUI and CLI. LibreOffice Draw, Master PDF Editor, and Okular cover most interactive needs; Ghostscript, qpdf, pdftk, mutool, OCRmyPDF, and exiftool cover scripted and batch operations. The CLI ecosystem is unmatched on any other OS. For browser-based work without installing anything, Docento.app runs in any Linux browser. For specific operations referenced above, follow the linked guides. The Linux PDF toolkit is small to learn, fast to use, and powerful at scale.