Docento.app Logo
Docento.app
Notebook, coffee, and laptop on a desk
All Posts

How to Edit PDFs on Linux: The Practical Toolkit

May 14, 2026·7 min read

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

See how to combine PDF files.

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

See how to rotate a PDF page.

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.docx for batch document conversion.

Containers (Docker) make these easy to deploy.

A typical Linux workflow

For a one-off PDF edit:

  1. Open in LibreOffice Draw or Master PDF Editor
  2. Make edits visually
  3. Save as PDF

For a batch operation:

  1. Identify the operation (compress, OCR, encrypt, etc.)
  2. Pick the right CLI tool from the list above
  3. Write a small shell script
  4. Run on the folder of PDFs

For a complex transformation:

  1. Decompose into steps
  2. Chain CLI tools with pipes or sequential commands
  3. Test on a small sample
  4. 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.

Related Posts