Recover PDF text extraction when read_file returns binary data by using pdftotext via shell
63
73%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./benchmarks/gdpval/skills/pdftotext-fallback/SKILL.mdApply this pattern when:
read_file on a PDF returns binary/image data instead of readable textexecute_code_sandbox fails or returns garbled contentThe pdftotext utility (from poppler-utils) is a mature, command-line tool that handles many PDF edge cases that confuse Python libraries or the read_file tool. It's pre-installed on most Linux systems and provides consistent, reliable text extraction.
Recognize extraction failure when:
read_file returns binary content, image data, or garbled textExtract to stdout (recommended for quick extraction):
pdftotext /path/to/file.pdf -The - argument outputs directly to stdout for easy capture in your tool response.
Example:
run_shell("pdftotext document.pdf -")Preserve layout (maintains original formatting):
pdftotext -layout /path/to/file.pdf -Extract to a file (for large PDFs):
pdftotext /path/to/file.pdf /path/to/output.txtThen read the output file with read_file.
Handle encoded text:
pdftotext -enc UTF-8 /path/to/file.pdf -Basic extraction:
# Simple text extraction
text = run_shell("pdftotext document.pdf -")With error handling:
# Try extraction, check for success
result = run_shell("pdftotext document.pdf - && echo 'SUCCESS' || echo 'FAILED'")Multi-page PDF with layout:
# Preserve tables and formatting
text = run_shell("pdftotext -layout document.pdf -")| Issue | Solution |
|---|---|
pdftotext: command not found | Install poppler-utils: apt-get install poppler-utils |
| Garbled/special characters | Try -enc UTF-8 or -enc ASCII7 |
| Missing formatting | Use -layout flag |
| Scanned PDF (no text) | Requires OCR (e.g., tesseract), not text extraction |
| Large PDF timeout | Extract to file instead of stdout |
pdfinfo: Get PDF metadata (pages, size, etc.)pdftoppm: Convert PDF pages to imagestesseract: OCR for scanned PDFsc5a9c4b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.