EPUB ↔ PDF Converter
by @bunsdev
Convert EPUB ↔ PDF bidirectionally. EPUB→PDF preserves layout for analysis; PDF→EPUB compresses and reflows for distribution and ereaders.
clawhub install epub-to-pdf📖 About This Skill
name: "epub" description: "Convert EPUB ↔ PDF bidirectionally. EPUB→PDF preserves layout for analysis; PDF→EPUB compresses and reflows for distribution and ereaders."
EPUB Skill
When to use
EPUB → PDF
PDF → EPUB
Workflow
EPUB → PDF (for analysis)
1. Check for calibre → install if missing (brew install calibre)
2. Convert EPUB → PDF using ebook-convert with formatting options
3. Validate output → confirm PDF rendered correctly
4. Render pages → use pdftoppm to extract visual content
5. Analyze → pass to PDF skill for text extraction and synthesis
PDF → EPUB (for distribution)
1. Check for calibre → install if missing
2. Convert PDF → EPUB using ebook-convert with reflowable settings
3. Auto-detect chapters → ebook-convert scans for structure
4. Validate compression → confirm EPUB is smaller than PDF
5. Archive → save EPUB to research/sources/ for distribution or ereader use
Usage
EPUB → PDF (basic)
ebook-convert input.epub output.pdf
EPUB → PDF (with layout preservation options)
ebook-convert input.epub output.pdf \
--pdf-standard-font "sans" \
--paper-size "a4" \
--margin-left 20 \
--margin-right 20 \
--margin-top 20 \
--margin-bottom 20 \
--pdf-mono-family "mono"
Note: Valid font families are: serif, sans, mono (not Helvetica, etc.)
PDF → EPUB (basic)
ebook-convert input.pdf output.epub
PDF → EPUB (with compression)
ebook-convert input.pdf output.epub \
--output-profile "tablet" \
--paper-size "a4"
Note: ebook-convert auto-detects chapters from PDFs. Inspect the output EPUB to verify structure.
In context (Sage workflow)
#### EPUB → PDF
# Convert EPUB to PDF for analysis
ebook-convert "/path/to/input.epub" "/path/to/research/sources/output.pdf"Verify and check size
ls -lh "/path/to/research/sources/output.pdf"Render pages for visual inspection
pdftoppm -png "/path/to/research/sources/output.pdf" "/tmp/preview/page"
#### PDF → EPUB
# Convert PDF to EPUB for distribution
ebook-convert "/path/to/input.pdf" "/path/to/research/sources/output.epub"Verify compression
ls -lh "/path/to/input.pdf" "/path/to/research/sources/output.epub"(EPUB will typically be 30-50% of PDF size)
Dependencies
System package:
# macOS (Homebrew)
brew install calibreUbuntu/Debian
sudo apt-get install -y calibreFedora/RHEL
sudo dnf install calibre
calibre includes ebook-convert and supports many formats:
Output conventions
research/sources/ with descriptive namesAuthor-Title.pdf, title-yyyy-mm-dd.epubQuality checks
After EPUB → PDF:
1. File exists and readable 2. File size >100 KB (suspiciously small = text-only, may have lost images) 3.file output.pdf confirms it's a valid PDF
4. pdftoppm renders first page successfullyAfter PDF → EPUB:
1. File exists and readable 2. File size is 30-50% of original PDF (good compression ratio) 3. Unzip the EPUB and inspectcontent.opf for auto-detected chapters
4. Open in ereader or calibre viewer to verify reflowable layoutTroubleshooting
EPUB → PDF crashes or produces empty output
unzip -t input.epubebook-convert input.epub output.pdfunzip -p input.epub | grep -r "html") and convert to markdownPDF → EPUB produces wrong chapter detection
--verbose to see what calibre detected: ebook-convert input.pdf output.epub --verboseFile size issues
--output-profile "tablet" for better compressionNotes
ebook-convert maintains structure, typography, imagesWhen conversion fails
unzip -t input.epub (EPUBs are ZIP files)ebook-convert input.epub output.pdf --verbose for error detailsRelated
Tested Conversions
✅ SHELLFISH.epub → SHELLFISH.pdf (73 KB → 639 KB, layout preserved, 89 pages) ✅ SHELLFISH.pdf → SHELLFISH-test.epub (639 KB → 262 KB, chapters auto-detected, 24 parts)
_EPUB ↔ PDF bidirectional conversion pipeline ready._ _Last tested: 2026-04-29 | Calibre v5.x_
⚡ When to Use
💡 Examples
EPUB → PDF (basic)
ebook-convert input.epub output.pdf
EPUB → PDF (with layout preservation options)
ebook-convert input.epub output.pdf \
--pdf-standard-font "sans" \
--paper-size "a4" \
--margin-left 20 \
--margin-right 20 \
--margin-top 20 \
--margin-bottom 20 \
--pdf-mono-family "mono"
Note: Valid font families are: serif, sans, mono (not Helvetica, etc.)
PDF → EPUB (basic)
ebook-convert input.pdf output.epub
PDF → EPUB (with compression)
ebook-convert input.pdf output.epub \
--output-profile "tablet" \
--paper-size "a4"
Note: ebook-convert auto-detects chapters from PDFs. Inspect the output EPUB to verify structure.
In context (Sage workflow)
#### EPUB → PDF
# Convert EPUB to PDF for analysis
ebook-convert "/path/to/input.epub" "/path/to/research/sources/output.pdf"Verify and check size
ls -lh "/path/to/research/sources/output.pdf"Render pages for visual inspection
pdftoppm -png "/path/to/research/sources/output.pdf" "/tmp/preview/page"
#### PDF → EPUB
# Convert PDF to EPUB for distribution
ebook-convert "/path/to/input.pdf" "/path/to/research/sources/output.epub"Verify compression
ls -lh "/path/to/input.pdf" "/path/to/research/sources/output.epub"(EPUB will typically be 30-50% of PDF size)
📋 Tips & Best Practices
ebook-convert maintains structure, typography, images