This extracts text from PDFs with a practical fallback strategy: it tries pypdf first, then switches to pdfminer.six if it's getting less than 50 characters per page, which usually means CJK fonts that pypdf can't decode. It's triggered automatically when you reference PDF files or mention research papers and documents in your prompt. The dual-parser approach is smart because pypdf is faster for standard PDFs, but you need the heavier pdfminer for certain character sets. If you work with academic papers or mixed-language documents, this handles the edge cases without you thinking about it. AGPL licensed.

GitHub stars
452
last updated
Jun 11, 2026

Install

$ npx -y skills add axoviq-ai/synthadoc --skill pdf --agent claude-code

Installs into .claude/skills of the current project.

Files

PDF Skill

Extracts text from PDF files using pypdf as the primary parser, with pdfminer.six as a fallback for CJK fonts that pypdf cannot decode (detected when pypdf yields fewer than 50 characters per page on average).

Setup

pip install pypdf pdfminer.six

Standalone usage

import asyncio
from synthadoc.skills.pdf.scripts.main import PdfSkill

skill = PdfSkill()

async def main():
    result = await skill.extract("/path/to/paper.pdf")
    print(result.text)          # extracted text from all pages
    print(result.metadata)      # {"pages": N, "cjk_fallback": bool, ...}

asyncio.run(main())

When this skill is used

  • Source path ends with .pdf
  • User intent contains: pdf, research paper

Scripts

  • scripts/main.py — PdfSkill class

References

  • references/cjk-notes.md — notes on CJK font handling

Sponsors

Details

Repository
github.com/axoviq-ai/synthadoc
Category
Office & Documents
License
AGPL-3.0
First seen
Jun 11, 2026

More from axoviq-ai/synthadoc

All 9
1davila7 avatarPDF Processingdavila7/claude-code-templatesExtract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extracti0skills.sh installs
2FISHers6 avataradd-larkFISHers6/clawBro引导配置飞书(Lark/Feishu)Channel,包括 App 创建、Webhook 配置、config.toml 写入和连通性验证。0skills.sh installs
3kaelio avatarnotion_synthesizekaelio/ktxSynthesize durable ktx wiki pages and semantic-layer sources from staged Notion pages, databases, data-source rows, and clustered Notion evidence. Load when a W0skills.sh installs
4nicepkg avatarpresentation-buildernicepkg/ai-workflowStructure compelling presentations with clear narratives and visual suggestions0skills.sh installs
5Prat011 avatardocxPrat011/awesome-llm-skillsComprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude nee0skills.sh installs
6spencermarx avatarocrspencermarx/open-code-review|0skills.sh installs