pdf · diff
v1.0 to v1.0
22 added, 0 removed. Audit A to A.
---
name: pdf
version: "1.0"
description: Extract text from PDF documents
entry:
script: scripts/main.py
class: PdfSkill
triggers:
extensions:
- ".pdf"
intents:
- "pdf"
- "research paper"
- "document"
requires:
- pypdf
- pdfminer.six
author: axoviq.com
license: AGPL-3.0-or-later
---
# 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
+
+ ```bash
+ pip install pypdf pdfminer.six
+ ```
+
+ ## Standalone usage
+
+ ```python
+ 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`, `document`
## Scripts
- `scripts/main.py` — `PdfSkill` class
## References
- `references/cjk-notes.md` — notes on CJK font handling