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 |
Merge PDFs
Section titled “Merge PDFs”Combine several PDFs into one document in the given order, optionally taking only some pages of each.
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. |
Split PDF
Section titled “Split PDF”Split a PDF into several files: every N pages, single pages, or custom page ranges.
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. |
Extract Pages
Section titled “Extract Pages”Create a new PDF containing only the selected pages.
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’. |
Reorder Pages
Section titled “Reorder Pages”Rearrange the pages of a PDF in a new order, or reverse it (pages may be repeated or left out).
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. |
Rotate Pages
Section titled “Rotate Pages”Rotate all or selected pages of one or more PDFs by 90, 180 or 270 degrees.
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. |
Delete Pages
Section titled “Delete Pages”Remove selected pages from a PDF.
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. |
Repair PDF
Section titled “Repair PDF”Rebuild damaged PDFs (broken cross-reference tables, bad offsets) into clean, valid files.
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. |
Optimize for Web
Section titled “Optimize for Web”Linearize PDFs (fast web view) so the first page displays before the whole file has downloaded.
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. |
Flatten Forms & Annotations
Section titled “Flatten Forms & Annotations”Bake form field values and annotations into the page content so they can no longer be edited.
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. |
Protect PDF
Section titled “Protect PDF”Encrypt PDFs with AES-256: require a password to open and/or restrict printing, copying and editing.
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)). |
Remove PDF Password
Section titled “Remove PDF Password”Remove password protection from a document you are authorized to open (the correct password is required).
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. |
Compress PDF
Section titled “Compress PDF”Shrink PDFs by downsampling images (Ghostscript) and packing objects into compressed streams (qpdf); keeps the smallest result.
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. |
Extract Text
Section titled “Extract Text”Extract the text layer of PDFs as plain text, optionally preserving the physical layout.
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. |
Extract Images
Section titled “Extract Images”Save the images embedded in a PDF in their original formats (JPEG, PNG, JPEG 2000, …).
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. |
PDF to Images
Section titled “PDF to Images”Render PDF pages to PNG, JPEG or TIFF images at a chosen resolution.
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. |
PDF Info
Section titled “PDF Info”Inspect a PDF: page count and sizes, PDF version, metadata, encryption, fonts, forms and more.
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. |
Compare PDF Text
Section titled “Compare PDF Text”Show the textual differences between two PDFs (line by line).
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. |
Images to PDF
Section titled “Images to PDF”Combine images (JPEG, PNG, WebP, TIFF, GIF, BMP) into a PDF, one image per page; JPEGs are embedded without recompression.
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. |
OCR PDF
Section titled “OCR PDF”Make scanned PDFs searchable by adding an invisible OCR text layer (Tesseract), or extract the recognized text.
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. |
Watermark PDF
Section titled “Watermark PDF”Stamp a text or image watermark on all or selected pages, with opacity, rotation, size and colour.
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). |
Add Page Numbers
Section titled “Add Page Numbers”Number the pages of PDFs with a custom format like ‘Page {n} of {total}’ at a chosen position.
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. |
Edit PDF Metadata
Section titled “Edit PDF Metadata”Set or clear document properties (title, author, subject, keywords, creator, producer); can strip all metadata including XMP.
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. |
List Form Fields
Section titled “List Form Fields”List the fillable form fields of a PDF with their names, types, current values and options.
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. |
Fill PDF Form
Section titled “Fill PDF Form”Fill text fields, checkboxes, radio buttons and choice fields of a PDF form from a JSON mapping of field names to values.
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. |
Convert Office Documents
Section titled “Convert Office Documents”Convert Word, Excel, PowerPoint and OpenDocument files to PDF or other office formats with LibreOffice (offline).
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)). |
Convert Markup Documents
Section titled “Convert Markup Documents”Convert between Markdown, HTML, DOCX, ODT, EPUB, reStructuredText, LaTeX, Org and more with Pandoc.
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. |
Markdown to PDF
Section titled “Markdown to PDF”Turn Markdown, HTML, reStructuredText and other markup into PDF (Pandoc → DOCX → LibreOffice).
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. |