Skip to content

PDF & Documents

Merge, split, OCR, protect and convert documents. 27 tools. Run any of them from the app, as dogubako pdf <tool>, over the HTTP API or as an MCP tool.

Tool Id Needs
Merge PDFs pdf.merge qpdf
Split PDF pdf.split qpdf
Extract Pages pdf.extract_pages qpdf
Reorder Pages pdf.reorder qpdf
Rotate Pages pdf.rotate qpdf
Delete Pages pdf.delete_pages qpdf
Repair PDF pdf.repair qpdf
Optimize for Web pdf.linearize qpdf
Flatten Forms & Annotations pdf.flatten qpdf
Protect PDF pdf.protect qpdf
Remove PDF Password pdf.unlock qpdf
Compress PDF pdf.compress qpdf, Ghostscript
Extract Text pdf.extract_text qpdf, Poppler utilities
Extract Images pdf.extract_images qpdf, Poppler utilities
PDF to Images pdf.to_images qpdf, Poppler utilities
PDF Info pdf.info qpdf, Poppler utilities
Compare PDF Text pdf.compare_text qpdf, Poppler utilities
Images to PDF pdf.from_images —
OCR PDF pdf.ocr qpdf, Poppler utilities, Tesseract OCR
Watermark PDF pdf.watermark —
Add Page Numbers pdf.page_numbers —
Edit PDF Metadata pdf.metadata_edit —
List Form Fields pdf.form_fields —
Fill PDF Form pdf.form_fill qpdf
Convert Office Documents pdf.convert_document LibreOffice
Convert Markup Documents pdf.convert_markup Pandoc
Markdown to PDF pdf.markup_to_pdf Pandoc, LibreOffice
external engineqpdfprogress

Combine several PDFs into one document in the given order, optionally taking only some pages of each.

Terminal window
dogubako pdf merge <files…> [options]

Id pdf.merge · MCP pdf_merge · Output: files · Timeout 30 min

Also found by: combine, join, concatenate, append, pdf

Option CLI Type Default Description
input (required) positional files PDF files (in order). Accepts .pdf.
ranges --ranges text (multi-line) Optional: one page range per line, in file order (e.g. ‘1-3,5’ or ‘z-1’); blank line = all pages. Advanced.
output_name --output-name text merged.pdf Output file name. Advanced.
external engineqpdfprogress

Split a PDF into several files: every N pages, single pages, or custom page ranges.

Terminal window
dogubako pdf split <file> [options]

Id pdf.split · MCP pdf_split · Output: files · Timeout 30 min

Also found by: separate, burst, pages, divide, pdf

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
mode --mode choice every One of: every (Every N pages), single (Single pages), ranges (Custom ranges).
every --every integer 1–100000 1 Pages per file. Only used when mode is every.
ranges --ranges text (multi-line) One output file per group; separate groups with ‘;’ or new lines, e.g. ‘1-3; 4-6; 7-z’. Only used when mode is ranges.
external engineqpdf

Create a new PDF containing only the selected pages.

Terminal window
dogubako pdf extract-pages <file> --pages <pages>

Id pdf.extract_pages · MCP pdf_extract_pages · Output: files · Timeout 15 min

Also found by: select, pick, subset, pages, pdf

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
pages (required) --pages text Page range, e.g. ‘1-3,5,8-z’.
external engineqpdf

Rearrange the pages of a PDF in a new order, or reverse it (pages may be repeated or left out).

Terminal window
dogubako pdf reorder <file> [options]

Id pdf.reorder · MCP pdf_reorder · Output: files · Timeout 15 min

Also found by: order, arrange, reverse, sort, pages, pdf

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
order --order text Page list in the desired order, e.g. ‘3,1,2,4-z’.
reverse --reverse boolean false Reverse all pages.
external engineqpdfprogress

Rotate all or selected pages of one or more PDFs by 90, 180 or 270 degrees.

Terminal window
dogubako pdf rotate <files…> [options]

Id pdf.rotate · MCP pdf_rotate · Output: files · Timeout 30 min

Also found by: turn, orientation, landscape, portrait, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
angle --angle choice 90 One of: 90 (90° clockwise), 180 (180°), 270 (90° counter-clockwise).
pages --pages text Optional page range (default: all pages).
absolute --absolute boolean false Set the rotation to exactly this angle instead of adding to the current one. Advanced.
external engineqpdf

Remove selected pages from a PDF.

Terminal window
dogubako pdf delete-pages <file> --pages <pages>

Id pdf.delete_pages · MCP pdf_delete_pages · Output: files · Timeout 15 min

Also found by: remove, drop, pages, pdf

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
pages (required) --pages text Pages to delete.
external engineqpdfprogress

Rebuild damaged PDFs (broken cross-reference tables, bad offsets) into clean, valid files.

Terminal window
dogubako pdf repair <files…>

Id pdf.repair · MCP pdf_repair · Output: files · Timeout 30 min

Also found by: fix, recover, corrupt, broken, damaged, pdf

Option CLI Type Default Description
input (required) positional files PDF files.
external engineqpdfprogress

Linearize PDFs (fast web view) so the first page displays before the whole file has downloaded.

Terminal window
dogubako pdf linearize <files…>

Id pdf.linearize · MCP pdf_linearize · Output: files · Timeout 30 min

Also found by: linearize, fast web view, optimize, web, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
external engineqpdfprogress

Bake form field values and annotations into the page content so they can no longer be edited.

Terminal window
dogubako pdf flatten <files…> [options]

Id pdf.flatten · MCP pdf_flatten · Output: files · Timeout 30 min

Also found by: flatten, forms, annotations, comments, burn in, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
which --which choice all One of: all (All annotations), print (Only those that print), screen (Only those shown on screen). Advanced.
external engineqpdfprogress

Encrypt PDFs with AES-256: require a password to open and/or restrict printing, copying and editing.

Terminal window
dogubako pdf protect <files…> --owner-password <owner-password> [options]

Id pdf.protect · MCP pdf_protect · Output: files · Timeout 30 min

Also found by: encrypt, password, lock, secure, permissions, aes, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
user_password --user-password secret Required to open the document (leave empty to allow opening without a password).
owner_password (required) --owner-password secret Required to change permissions or remove the protection.
allow --allow list of choices print,copy Allowed actions. Any of: print, modify (Modify content), copy (Copy text & images), annotate (Add comments), forms (Fill in forms), assemble (Assemble (insert, rotate, delete pages)).
external engineqpdfprogress

Remove password protection from a document you are authorized to open (the correct password is required).

Terminal window
dogubako pdf unlock <files…> --password <password>

Id pdf.unlock · MCP pdf_unlock · Output: files · Timeout 30 min

Also found by: decrypt, unlock, password, unprotect, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
password (required) --password secret The document’s open or permissions password.
external engineqpdfGhostscriptprogress

Shrink PDFs by downsampling images (Ghostscript) and packing objects into compressed streams (qpdf); keeps the smallest result.

Terminal window
dogubako pdf compress <files…> [options]

Id pdf.compress · MCP pdf_compress · Output: files · Timeout 60 min

Also found by: compress, reduce, shrink, smaller, optimize, size, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
preset --preset choice ebook One of: screen (Smallest (72 dpi images)), ebook (Balanced (150 dpi images)), printer (High quality (300 dpi images)), prepress (Prepress (300 dpi, color preserving)), lossless (Lossless only (no image changes)).
linearize --linearize boolean false Optimize for web (linearize). Advanced.
grayscale --grayscale boolean false Convert to grayscale. Advanced.
external engineqpdfPoppler utilitiesprogress

Extract the text layer of PDFs as plain text, optionally preserving the physical layout.

Terminal window
dogubako pdf extract-text <files…> [options]

Id pdf.extract_text · MCP pdf_extract_text · Output: text (text/plain) · Timeout 15 min

Also found by: text, pdftotext, copy, content, txt, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
layout --layout boolean false Keep the original column layout using spacing.
first_page --first-page integer ≥ 1 Advanced.
last_page --last-page integer ≥ 1 Advanced.
external engineqpdfPoppler utilitiesprogress

Save the images embedded in a PDF in their original formats (JPEG, PNG, JPEG 2000, …).

Terminal window
dogubako pdf extract-images <file> [options]

Id pdf.extract_images · MCP pdf_extract_images · Output: files · Timeout 30 min

Also found by: images, pictures, photos, pdfimages, pdf

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
first_page --first-page integer ≥ 1 Advanced.
last_page --last-page integer ≥ 1 Advanced.
min_size --min-size integer ≥ 0 0 Skip images smaller than this in both dimensions. Advanced.
external engineqpdfPoppler utilitiesprogress

Render PDF pages to PNG, JPEG or TIFF images at a chosen resolution.

Terminal window
dogubako pdf to-images <files…> [options]

Id pdf.to_images · MCP pdf_to_images · Output: files · Timeout 60 min

Also found by: render, convert, png, jpg, jpeg, tiff, rasterize, pdftoppm, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
format --format choice png One of: png, jpeg, tiff.
dpi --dpi integer 18–1200 150 Resolution (DPI).
pages --pages text Optional page range (default: all).
quality --quality integer 1–100 90 JPEG quality. Only used when format is jpeg. Advanced.
grayscale --grayscale boolean false Advanced.
transparent --transparent boolean false Transparent background (PNG). Only used when format is png. Advanced.
external engineqpdfPoppler utilities

Inspect a PDF: page count and sizes, PDF version, metadata, encryption, fonts, forms and more.

Terminal window
dogubako pdf info <file>

Id pdf.info · MCP pdf_info · Output: structured data · Timeout 5 min

Also found by: properties, metadata, pages, fonts, encryption, version, inspect, pdfinfo

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
external engineqpdfPoppler utilitiesside-by-side diff

Show the textual differences between two PDFs (line by line).

Terminal window
dogubako pdf compare-text <file> <file>

Id pdf.compare_text · MCP pdf_compare_text · Output: text (text/x-diff) · Timeout 10 min

Also found by: diff, compare, changes, versions, pdf

Option CLI Type Default Description
original (required) positional file Original PDF. Accepts .pdf.
changed (required) positional file Changed PDF. Accepts .pdf.
nativeprogress

Combine images (JPEG, PNG, WebP, TIFF, GIF, BMP) into a PDF, one image per page; JPEGs are embedded without recompression.

Terminal window
dogubako pdf from-images <files…> [options]

Id pdf.from_images · MCP pdf_from_images · Output: files · Timeout 30 min

Also found by: jpg to pdf, png to pdf, photos, scan, convert, combine, images

Option CLI Type Default Description
input (required) positional files Images (in order). Accepts image/*.
page_size --page-size choice fit One of: fit (Fit to image), a4, letter (US Letter), legal (US Legal), a3, a5.
orientation --orientation choice auto One of: auto (Auto (match image)), portrait, landscape.
margin --margin number 0–100 0 Margin (mm).
dpi --dpi integer 10–2400 150 Pixels per inch used to size ‘fit’ pages. Advanced.
output_name --output-name text images.pdf Output file name. Advanced.
external engineqpdfPoppler utilitiesTesseract OCRprogress

Make scanned PDFs searchable by adding an invisible OCR text layer (Tesseract), or extract the recognized text.

Terminal window
dogubako pdf ocr <files…> [options]

Id pdf.ocr · MCP pdf_ocr · Output: files · Timeout 360 min

Also found by: ocr, scan, searchable, recognize, text recognition, tesseract, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
output --output choice pdf One of: pdf (Searchable PDF), text (Text only).
languages --languages text eng Tesseract language codes joined with ‘+’, e.g. ‘eng+deu’.
dpi --dpi integer 100–600 300 Scan resolution (DPI). Advanced.
pages --pages text Optional page range (default: all). Advanced.
image_format --image-format choice jpeg One of: jpeg (JPEG (smaller)), png (PNG (lossless)). Only used when output is pdf. Advanced.
nativeprogress

Stamp a text or image watermark on all or selected pages, with opacity, rotation, size and colour.

Terminal window
dogubako pdf watermark <files…> [options]

Id pdf.watermark · MCP pdf_watermark · Output: files · Timeout 30 min

Also found by: watermark, stamp, confidential, draft, overlay, logo, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
kind --kind choice text One of: text, image.
text --text text CONFIDENTIAL Only used when kind is text.
image --image file Watermark image. Accepts image/*. Only used when kind is image.
font_size --font-size number 4–400 60 Font size (pt). Only used when kind is text.
color --color color #ff0000 Colour. Only used when kind is text.
scale --scale number 1–100 50 Image width (% of page). Only used when kind is image.
opacity --opacity number 0–1 0.3
rotation --rotation number -360–360 45 Rotation (°).
position --position choice center One of: center, top, bottom. Advanced.
pages --pages text Optional page range (default: all).
nativeprogress

Number the pages of PDFs with a custom format like ‘Page {n} of {total}’ at a chosen position.

Terminal window
dogubako pdf page-numbers <files…> [options]

Id pdf.page_numbers · MCP pdf_page_numbers · Output: files · Timeout 30 min

Also found by: page numbers, numbering, pagination, footer, header, bates, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
position --position choice bottom-center One of: bottom-center (Bottom center), bottom-right (Bottom right), bottom-left (Bottom left), top-center (Top center), top-right (Top right), top-left (Top left).
format --format text {n} Use {n} for the page number and {total} for the total.
start --start integer -1000000–1000000000 1 Start at.
font_size --font-size number 4–72 10 Font size (pt).
color --color color #000000 Colour. Advanced.
margin --margin number 0–300 28 Margin (pt). Advanced.
skip_first --skip-first boolean false Leave the first page (e.g. a cover) unnumbered; numbering starts on page 2.
nativeprogress

Set or clear document properties (title, author, subject, keywords, creator, producer); can strip all metadata including XMP.

Terminal window
dogubako pdf metadata-edit <files…> [options]

Id pdf.metadata_edit · MCP pdf_metadata_edit · Output: files · Timeout 15 min

Also found by: metadata, properties, title, author, privacy, strip, xmp, pdf

Option CLI Type Default Description
input (required) positional files PDF files. Accepts .pdf.
clear_all --clear-all boolean false Delete the document information dictionary and XMP metadata before applying any new values.
title --title text Leave empty to keep the current value; use a single ‘-’ to remove it.
author --author text Leave empty to keep the current value; use a single ‘-’ to remove it.
subject --subject text Leave empty to keep the current value; use a single ‘-’ to remove it.
keywords --keywords text Leave empty to keep the current value; use a single ‘-’ to remove it.
creator --creator text Leave empty to keep the current value; use a single ‘-’ to remove it.
producer --producer text Leave empty to keep the current value; use a single ‘-’ to remove it.
native

List the fillable form fields of a PDF with their names, types, current values and options.

Terminal window
dogubako pdf form-fields <file>

Id pdf.form_fields · MCP pdf_form_fields · Output: structured data · Timeout 5 min

Also found by: form, acroform, fields, fillable, inspect, pdf

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
external engineqpdf

Fill text fields, checkboxes, radio buttons and choice fields of a PDF form from a JSON mapping of field names to values.

Terminal window
dogubako pdf form-fill <file> --values <values> [options]

Id pdf.form_fill · MCP pdf_form_fill · Output: files · Timeout 10 min

Also found by: form, fill, acroform, fields, fillable, pdf

Option CLI Type Default Description
input (required) positional file PDF. Accepts .pdf.
values (required) --values JSON JSON object mapping field names to values, e.g. {“name”: “Ada”, “agree”: true}. Get the names with pdf.form_fields.
flatten --flatten boolean false Make the filled values part of the page so they can no longer be edited.
external engineLibreOfficeprogress

Convert Word, Excel, PowerPoint and OpenDocument files to PDF or other office formats with LibreOffice (offline).

Terminal window
dogubako pdf convert-document <files…> [options]

Id pdf.convert_document · MCP pdf_convert_document · Output: files · Timeout 60 min

Also found by: docx to pdf, word to pdf, excel to pdf, powerpoint to pdf, odt, office, libreoffice, convert

Option CLI Type Default Description
input (required) positional files Documents. Accepts .doc .docx .odt .rtf .txt .html .htm .wpd .pages .xls +16 more.
format --format choice pdf One of: pdf, docx (Word (DOCX)), odt (OpenDocument Text (ODT)), rtf (Rich Text (RTF)), txt (Plain text), html, xlsx (Excel (XLSX)), ods (OpenDocument Spreadsheet (ODS)), csv (CSV (first sheet)), pptx (PowerPoint (PPTX)), odp (OpenDocument Presentation (ODP)).
external enginePandocprogress

Convert between Markdown, HTML, DOCX, ODT, EPUB, reStructuredText, LaTeX, Org and more with Pandoc.

Terminal window
dogubako pdf convert-markup [files…] [options]

Id pdf.convert_markup · MCP pdf_convert_markup · Output: files · Timeout 30 min

Also found by: pandoc, markdown, html, docx, epub, rst, latex, org, convert

Option CLI Type Default Description
input positional files Documents.
text --text text (multi-line) Or paste text.
from --from choice auto Input format. One of: auto (Detect from extension), markdown (Markdown (Pandoc)), gfm (GitHub Markdown), commonmark, html, docx (Word (DOCX)), odt (OpenDocument (ODT)), epub, rst (reStructuredText), latex, org (Org mode), textile, mediawiki, docbook, rtf, ipynb (Jupyter notebook), csv.
to --to choice html Output format. One of: html, docx (Word (DOCX)), odt (OpenDocument (ODT)), epub, markdown (Markdown (Pandoc)), gfm (GitHub Markdown), rst (reStructuredText), latex, org (Org mode), asciidoc, mediawiki, textile, rtf, docbook, plain (Plain text), typst.
standalone --standalone boolean true Produce a complete document with header (HTML/LaTeX/…). Advanced.
external enginePandocLibreOfficeprogress

Turn Markdown, HTML, reStructuredText and other markup into PDF (Pandoc → DOCX → LibreOffice).

Terminal window
dogubako pdf markup-to-pdf [files…] [options]

Id pdf.markup_to_pdf · MCP pdf_markup_to_pdf · Output: files · Timeout 60 min

Also found by: markdown to pdf, md to pdf, html to pdf, pandoc, libreoffice, convert

Option CLI Type Default Description
input positional files Documents.
text --text text (multi-line) Or paste text.
from --from choice auto Input format. One of: auto (Detect from extension), markdown (Markdown (Pandoc)), gfm (GitHub Markdown), commonmark, html, docx (Word (DOCX)), odt (OpenDocument (ODT)), epub, rst (reStructuredText), latex, org (Org mode), textile, mediawiki, docbook, rtf, ipynb (Jupyter notebook), csv.