What does this skill do, and when should you use it?
This is one of DeepTutor's built-in office skills, letting the model work directly on PDF files in a code-execution sandbox. It picks the right preinstalled Python library per task: pdfplumber for layout-aware text and table extraction, pypdf for merging, splitting, rotating, watermarking, encryption, and form filling, reportlab for creating PDFs from scratch, and PyMuPDF for rendering pages to images. It is honest about scanned documents: with no OCR engine and no network in the sandbox, it plainly says image-only PDFs cannot be recovered instead of fabricating content. For Chinese and other non-Latin scripts, it ships a CJK font registration routine that prevents permanently baked-in tofu boxes.
- Extracts layout-aware text, tables, and word coordinates with pdfplumber, exporting tables to multi-sheet Excel
- Merges, splits per page, rotates, crops, reads/writes metadata, encrypts and decrypts with pypdf
- Detects and fills AcroForm fields, or overlays text via FreeText annotations on flat forms
- Creates new PDFs with reportlab — flowing paginated documents or fixed-coordinate canvas layout
- Rasterizes pages to PNG with PyMuPDF (fitz) for visual inspection or image-capable steps
- Detects scanned pages and stops honestly rather than inventing text; on failure, diagnoses stderr and changes strategy
- A researcher uploads a paper and wants its tables extracted into an Excel workbook for comparison
- An office worker needs several PDFs merged into one report, or split per page and encrypted for distribution
- A user receives a fillable application form PDF and wants the fields identified and filled automatically
- A teaching assistant wants to watermark lecture handouts, rotate scanned pages, or fix metadata in batch
- A developer needs a well-typeset new PDF report generated from content, including Chinese text
- A user wants specific PDF pages rendered as images for a slide deck or an image-analysis step
- Scanned/image-only PDFs needing text recovery — no tesseract in the sandbox and network is off, so OCR is impossible
- Markdown/HTML-to-PDF conversion expectations — soffice/pandoc are usually absent, so it degrades to manual reportlab layout
- Users unwilling to run model-generated code on their host — the office skills depend on the exec/code_execution sandbox; setting sandbox_allow_subprocess=false disables it at the cost of no file output
How do you install this skill?
- Static review only — no code was executed; examples (especially form filling and CJK font registration) depend on sandbox library/font versions and should be validated in the target environment before use.
- Scanned/image-only PDFs cannot be OCR'd; inputs containing scanned pages will yield only partial results — verify input type in advance.
- Encrypt/decrypt examples pass plaintext passwords as parameters; for sensitive documents, ensure passwords do not leak into logs or session records.
- SKILL.md has no version or changelog; example API behavior may shift with dependency versions across DeepTutor upgrades.
- Shell / CLI
- Local filesystem
Python with pdfplumber, pypdf, reportlab, PyMuPDF preinstalled in sandboxfonts-wqy-zenhei (CJK font, optional)
This skill ships built into the DeepTutor repository (one of the docx/pdf/pptx/xlsx office skills) and installs with the main application — no separate download. DeepTutor (PyPI) full local install:
mkdir -p my-deeptutor && cd my-deeptutor
pip install -U deeptutor
deeptutor init
deeptutor startDeepTutor (Docker) single-container deployment, with the skill usable inside the container sandbox:
docker run --rm --name deeptutor \
-p 127.0.0.1:3782:3782 \
-v deeptutor-data:/app/data \
ghcr.io/hkuds/deeptutor:latestThe skill file lives at deeptutor/skills/builtin/pdf/SKILL.md in the source tree; the repo documents no standalone install path into Claude Code or Codex.
How do you use this skill?
Once installed, send your agent any of these to trigger it:
- Extract all financial tables from this annual report PDF into one Excel file, one worksheet per table
- Merge these three PDFs, add an 'Internal Use' watermark, then encrypt it with password user123
- Fill in this rental application PDF: name Jane Doe, check the 'I agree' checkbox
- Generate a 500-word product overview PDF with a bold title and a quarterly data table
The skill is triggered automatically whenever the user uploads a .pdf or asks to produce, edit, or pull data out of one. The flow runs complete Python scripts via exec in the sandbox (pdfplumber / pypdf / reportlab / fitz are preinstalled), preferring to create, reopen, and validate the artifact in one call, with later calls revising the same file. Key behaviors: explicitly requested quantities (e.g. 500 words) are preserved and verified before finishing; on failure it diagnoses stderr and changes strategy rather than retrying identical code; output like (cid:NN) is treated as a scanned page and handled honestly. Host-side subprocess execution is controlled by sandbox_allow_subprocess in system. (default true).
What are this skill's strengths and limitations?
- Covers the full PDF lifecycle: extraction, creation, editing, encryption, forms, and rendering in one skill
- Clear library-selection guide matching pdfplumber/pypdf/reportlab/PyMuPDF to each task
- Honestly reports scanned pages and missing fonts, explicitly forbidding fabricated content or tofu output
- Includes a complete CJK font registration routine plus coordinate-conversion details for overlay forms
- Tables export directly to multi-sheet Excel — practically useful
- No OCR capability; text in scanned PDFs is unrecoverable
- Depends on the exact preinstalled sandbox libraries; other hosts need dependency setup
- External Markdown/HTML converters (soffice/pandoc) are usually missing in the sandbox
- As a DeepTutor built-in, there is no documented standalone install into Claude Code/Codex or other platforms
How does this skill compare with similar options?
Side by side with related skills; every score comes from the same FSRS standard.
| Skill | FS score | Stars | Last updated | License |
|---|---|---|---|---|
| DeepTutor PDF Skill this page | 61 · Recommended | ★ 41k | 17d ago | Apache-2.0 |
| Open Cowork PDF Skill | 69 · Recommended | ★ 2.2k | 12d ago | MIT |
| PDF Document Workflow ✓ OpenAI · Official | 46 · Use with care | ★ 28k | 4mo ago | — |
| PDF Document Processing Skill ✓ Anthropic · Official | 45 · Not recommended | ★ 181k | 16d ago | — |
| Book-to-Skill Converter | 57 · Use with care | ★ 35k | 13d ago | MIT |
The same repository bundles sibling docx, pptx, and xlsx office skills, forming a complete office-document family; this skill focuses on PDF and complements rather than competes with them. The source names no third-party alternatives.
How did FollowSkills review this skill?
Skill runs in a sandboxed shell with preinstalled libraries only, explicitly forbids pip install and network OCR; data flow is transparent (read input PDFs, write relative-path outputs), no credentials or external side effects. Deducted for: no explicit user-confirmation step, no rollback guidance, publisher unverified, and password handling in the encrypt example lacks sensitive-data prompts.
Instructions are self-consistent with a clear library-selection decision tree, failure-diagnosis guidance (read stderr, change strategy, no blind retries), and verification steps (reopen output, confirm fields/word counts). Deducted for: static-only review without execution; edge cases (corrupt PDFs, very large files, multi-subfont .ttc compatibility) are untested; failure-feedback quality rests on documentation claims alone.
Triggers are clear (user uploads a .pdf or asks to produce/edit/extract), and capability boundaries are unusually honestly declared: no OCR, network off, graceful degradation when soffice/pandoc are missing. Chinese use is well served by a concrete CJK TrueType font-registration routine (wqy paths). Deducted for: core function depends on sandbox-preinstalled fonts/libraries whose actual availability is unverified; the frontmatter requires declaration is thin.
Well-layered: task-sectioned with progressive disclosure, abundant examples, and proactive known-limitation disclosure (no OCR, CFF fonts unsupported, missing converters). Dependencies are explicitly declared in pyproject (pypdf/pdfplumber/reportlab/PyMuPDF) and the Apache-2.0 license is clear. Deducted for: SKILL.md itself carries no version or changelog, limitations are scattered rather than summarized, and maintenance responsibility is only inferable at the repository level.
Covers the main PDF workflow tasks (extraction, tables, merge, encrypt, forms, rendering) with directly reusable examples and actionable handling of hard cases (CJK output, scanned files, flat forms), giving clear marginal value. Deducted for: static review cannot verify output quality, examples assume library-version behavior, outputs still require runtime verification, and comparative benefit is inferential.
Code examples are concrete and auditable, dependency claims cross-check against pyproject, and the repository has CI workflows and a test directory — but no committed tests cover this skill's key paths. Deducted for: all claims are author-written with no third-party execution evidence; scanned-file behavior and font-fallback claims cannot be statically reproduced, capping at 5.
Open a dimension to read why it scored that way
Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.
See the full review method →