Productivity & Collaboration

DeepTutor PDF Skill

Read, extract, create, merge, encrypt, fill, and render PDFs inside a sandboxed code environment.

61/ 100
Recommended

Generally reliable with disclosed limitations; trial as directed and keep a rollback path.

See how it was scored ↓
Works as-is in
Codex · Claude Code
Stars
★ 41k
Last updated
17d ago
License
Apache-2.0
pdf-extractionpdf-creationform-fillingpdfplumber
+4pypdfreportlabpymupdftable-extraction

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
Good fit
  • 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
Not a fit
  • 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?

Before you use it
  • 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.
Before you start
Your agent needs
  • Shell / CLI
  • Local filesystem
Install first
  • Python with pdfplumber, pypdf, reportlab, PyMuPDF preinstalled in sandbox
  • fonts-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 start

DeepTutor (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:latest

The 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?

Try saying

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?

Pros
  • 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
Limitations
  • 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?

FollowSkills review · FSRS-2.0
Recommended
61/ 100 5-point scale 3.1 / 5
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
1Trust18 / 25 · 3.6/5

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.

2Reliability10 / 20 · 2.5/5

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.

3Adaptability11 / 15 · 3.7/5

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.

4Convention11 / 15 · 3.7/5

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.

5Effectiveness7 / 15 · 2.3/5

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.

6Verifiability4 / 10 · 2.0/5

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.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Sep 09, 2026 Reviewed revision 7a96bba1ae03 Review evidence[1][2][3][4][5][6][7][8]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

FAQ

What happens with a scanned PDF?
The skill detects it (empty text or `(cid:NN)` garbage), then plainly says the sandbox has no OCR engine and the network is off, so the text cannot be recovered — it does not fabricate content or attempt to pip install tesseract.
Will Chinese text in generated PDFs turn into boxes?
Not if the host has a CJK TrueType font (e.g. wqy-zenhei). The skill includes a font registration function that forces the font onto every style; if the host has none, it refuses to ship a tofu PDF and tells you instead.
Does it need network access?
No. All Python libraries are preinstalled in the sandbox, and the skill explicitly notes the network is off — pip install attempts are discouraged.
Is it safe to run model-generated code on my machine?
It is a real trust decision. DeepTutor offers `sandbox_allow_subprocess` (default true) to disable host-side execution, and docker-compose deployments can route execution to a hardened, least-privileged runner sidecar for the strongest isolation.

More skills from this repository

All from HKUDS/DeepTutor

Related skills