feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
<!doctype html>
< html lang = "en" >
2026-01-07 16:55:12 +05:30
< head >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< meta charset = "UTF-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2026-01-02 21:33:06 +05:30
<!-- Primary Meta Tags -->
< title > Pdf Booklet Online Free - Pdf Booklet Tool | BentoPDF< / title >
2026-01-07 16:55:12 +05:30
< meta
name="title"
content="Pdf Booklet Online Free - Pdf Booklet Tool | BentoPDF"
/>
< meta
name="description"
content="★ Pdf Booklet online free - Pdf booklet PDFs easily ★ No signup ★ Unlimited files ★ Privacy-first ★ Works in browser ★ Fast & secure"
/>
< meta name = "keywords" content = "pdf booklet, pdf booklet, online pdf" / >
< meta name = "author" content = "BentoPDF" / >
< meta
name="robots"
content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"
/>
2026-01-02 21:33:06 +05:30
<!-- Canonical URL -->
2026-01-07 16:55:12 +05:30
< link rel = "canonical" href = "https://www.bentopdf.com/pdf-booklet.html" / >
2026-01-02 21:33:06 +05:30
<!-- Open Graph / Facebook / LinkedIn -->
2026-01-07 16:55:12 +05:30
< meta property = "og:type" content = "website" / >
< meta property = "og:url" content = "https://www.bentopdf.com/pdf-booklet" / >
< meta
property="og:title"
content="Pdf Booklet Online Free - Pdf Booklet Tool | BentoPDF"
/>
< meta
property="og:description"
content="★ Pdf Booklet online free - Pdf booklet PDFs easily ★ No signup ★ Unlimited files ★ Privacy-first ★ Works in browser ★ Fast & secure"
/>
< meta
property="og:image"
content="https://www.bentopdf.com/images/og-pdf-booklet.png"
/>
< meta property = "og:image:width" content = "1200" / >
< meta property = "og:image:height" content = "630" / >
< meta property = "og:site_name" content = "BentoPDF" / >
2026-01-02 21:33:06 +05:30
<!-- Twitter Card -->
2026-01-07 16:55:12 +05:30
< meta name = "twitter:card" content = "summary_large_image" / >
< meta name = "twitter:url" content = "https://www.bentopdf.com/pdf-booklet" / >
< meta name = "twitter:title" content = "Pdf Booklet Free" / >
< meta
name="twitter:description"
content="★ Pdf Booklet online free - Pdf booklet PDFs easily ★ No signup ★ Unlimited files ★ Privacy-first ★ Works in browser ★ F"
/>
< meta
name="twitter:image"
content="https://www.bentopdf.com/images/twitter-pdf-booklet.png"
/>
< meta name = "twitter:site" content = "@BentoPDF" / >
2026-01-02 21:33:06 +05:30
<!-- Mobile Web App -->
2026-01-07 16:55:12 +05:30
< meta name = "mobile-web-app-capable" content = "yes" / >
< meta name = "apple-mobile-web-app-capable" content = "yes" / >
< meta name = "apple-mobile-web-app-title" content = "Pdf Booklet" / >
2025-12-30 12:36:30 +05:30
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< title > PDF Booklet - BentoPDF< / title >
2026-01-07 16:55:12 +05:30
< meta
name="description"
content="Create printable booklets from PDF files. Rearrange pages for double-sided printing with live preview. Free, secure, and runs entirely in your browser."
/>
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< link href = "/src/css/styles.css" rel = "stylesheet" / >
2025-12-31 01:02:51 +05:30
2026-01-02 21:33:06 +05:30
<!-- Web App Manifest -->
< link rel = "manifest" href = "/site.webmanifest" / >
2025-12-31 01:02:51 +05:30
2026-01-02 21:33:06 +05:30
<!-- Favicons -->
< link rel = "icon" type = "image/svg+xml" href = "/images/favicon.svg" / >
2026-01-07 16:55:12 +05:30
< link
rel="icon"
type="image/png"
sizes="192x192"
href="/images/favicon-192x192.png"
/>
< link
rel="icon"
type="image/png"
sizes="512x512"
href="/images/favicon-512x512.png"
/>
< link
rel="apple-touch-icon"
sizes="180x180"
href="/images/apple-touch-icon.png"
/>
2026-01-02 21:33:06 +05:30
< link rel = "icon" href = "/favicon.ico" sizes = "32x32" / >
2026-01-07 16:55:12 +05:30
< / head >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
2026-01-07 16:55:12 +05:30
< body class = "antialiased bg-gray-900" >
2026-01-12 22:11:01 +05:30
{{> navbar }}
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
2026-01-07 16:55:12 +05:30
< div
id="uploader"
class="min-h-screen flex flex-col items-center justify-start py-12 p-4 bg-gray-900"
>
< div
id="tool-uploader"
class="bg-gray-800 rounded-xl shadow-xl px-4 py-8 md:p-8 max-w-4xl w-full text-gray-200 border border-gray-700"
>
< button
id="back-to-tools"
class="flex items-center gap-2 text-indigo-400 hover:text-indigo-300 mb-6 font-semibold"
>
< i data-lucide = "arrow-left" class = "cursor-pointer" > < / i >
< span class = "cursor-pointer" data-i18n = "tools.backToTools" >
Back to Tools
< / span >
< / button >
< h1
class="text-2xl font-bold text-white mb-2"
data-i18n="tools:pdfBooklet.name"
>
2026-03-04 13:46:16 +05:30
PDF Booklet
2026-01-07 16:55:12 +05:30
< / h1 >
< p class = "text-gray-400 mb-6" data-i18n = "tools:pdfBooklet.subtitle" >
Rearrange pages for double-sided booklet printing. Fold and staple to
create a booklet.
< / p >
< div
id="drop-zone"
class="relative flex flex-col items-center justify-center w-full h-48 md:h-64 border-2 border-dashed border-gray-600 rounded-xl cursor-pointer bg-gray-900 hover:bg-gray-700 transition-colors duration-300"
>
< div class = "flex flex-col items-center justify-center pt-5 pb-6" >
< i
data-lucide="upload-cloud"
class="w-10 h-10 mb-3 text-gray-400"
>< / i >
< p class = "mb-2 text-sm text-gray-400" >
< span class = "font-semibold" data-i18n = "upload.clickToSelect"
>Click to select a file< /span
>
< span data-i18n = "upload.orDragAndDrop" > or drag and drop< / span >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< / p >
2026-02-02 16:30:59 +05:30
< p class = "text-xs text-gray-500" data-i18n = "upload.hints.singlePdf" >
A single PDF file
< / p >
2026-01-07 16:55:12 +05:30
< p class = "text-xs text-gray-500" data-i18n = "upload.filesNeverLeave" >
Your files never leave your device.
< / p >
< / div >
< input
id="file-input"
type="file"
class="absolute top-0 left-0 w-full h-full opacity-0 cursor-pointer"
accept="application/pdf"
/>
< / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
2026-01-07 16:55:12 +05:30
< div id = "file-display-area" class = "mt-4 space-y-2" > < / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
2026-01-07 16:55:12 +05:30
< div id = "tool-options" class = "hidden mt-6" >
< div class = "p-3 bg-gray-900 rounded-lg border border-gray-700 mb-4" >
< p class = "text-sm text-gray-300" >
< strong class = "text-white" data-i18n = "tools:pdfBooklet.howItWorks"
>How it works:< /strong
>
< / p >
< ul
class="list-disc list-inside text-xs text-gray-400 mt-1 space-y-1"
>
< li data-i18n = "tools:pdfBooklet.step1" > Upload a PDF file.< / li >
< li data-i18n = "tools:pdfBooklet.step2" >
Pages will be rearranged in booklet order.
< / li >
< li data-i18n = "tools:pdfBooklet.step3" >
Print double-sided, flip on short edge, fold and staple.
< / li >
< / ul >
< / div >
< div class = "grid grid-cols-1 md:grid-cols-2 gap-6 mb-6" >
< div class = "bg-gray-900 rounded-lg border border-gray-700 p-4" >
< label class = "block mb-3 text-sm font-medium text-white"
>Source Rotation< /label
>
< div class = "space-y-2" >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="rotation"
value="none"
checked
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > No rotation< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="rotation"
value="90cw"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > Rotate clockwise (90°)< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="rotation"
value="90ccw"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > Rotate counter-clockwise (90°)< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="rotation"
value="alternate"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > Alternate (odd→CW, even→CCW)< / span >
< / label >
< / div >
< / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
2026-01-07 16:55:12 +05:30
< div class = "bg-gray-900 rounded-lg border border-gray-700 p-4" >
< div class = "mb-4" >
< label
for="paper-size"
class="block mb-2 text-sm font-medium text-white"
data-i18n="tools:pdfBooklet.paperSize"
>Paper Size< /label
>
< select
id="paper-size"
class="w-full bg-gray-700 border border-gray-600 text-white rounded-lg p-2"
>
< optgroup label = "US Sizes" >
< option value = "Letter" selected > Letter (8.5" × 11")< / option >
< option value = "Legal" > Legal (8.5" × 14")< / option >
< option value = "Tabloid" > Tabloid (11" × 17")< / option >
< option value = "Ledger" > Ledger (17" × 11")< / option >
< option value = "Executive" > Executive (7.25" × 10.5")< / option >
< option value = "Folio" > Folio (8.5" × 13")< / option >
< / optgroup >
< optgroup label = "A Series (ISO 216)" >
< option value = "4A0" > 4A0 (1682 × 2378 mm)< / option >
< option value = "2A0" > 2A0 (1189 × 1682 mm)< / option >
< option value = "A0" > A0 (841 × 1189 mm)< / option >
< option value = "A1" > A1 (594 × 841 mm)< / option >
< option value = "A2" > A2 (420 × 594 mm)< / option >
< option value = "A3" > A3 (297 × 420 mm)< / option >
< option value = "A4" > A4 (210 × 297 mm)< / option >
< option value = "A5" > A5 (148 × 210 mm)< / option >
< option value = "A6" > A6 (105 × 148 mm)< / option >
< / optgroup >
< optgroup label = "B Series (ISO 216)" >
< option value = "B0" > B0 (1000 × 1414 mm)< / option >
< option value = "B1" > B1 (707 × 1000 mm)< / option >
< option value = "B2" > B2 (500 × 707 mm)< / option >
< option value = "B3" > B3 (353 × 500 mm)< / option >
< option value = "B4" > B4 (250 × 353 mm)< / option >
< option value = "B5" > B5 (176 × 250 mm)< / option >
< / optgroup >
< optgroup label = "C Series (Envelopes)" >
< option value = "C0" > C0 (917 × 1297 mm)< / option >
< option value = "C1" > C1 (648 × 917 mm)< / option >
< option value = "C2" > C2 (458 × 648 mm)< / option >
< option value = "C3" > C3 (324 × 458 mm)< / option >
< option value = "C4" > C4 (229 × 324 mm)< / option >
< option value = "C5" > C5 (162 × 229 mm)< / option >
< option value = "C6" > C6 (114 × 162 mm)< / option >
< option value = "C7" > C7 (81 × 114 mm)< / option >
< / optgroup >
< / select >
< / div >
< label class = "block mb-3 text-sm font-medium text-white"
>Grid Mode< /label
>
< div class = "space-y-2" >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="grid-mode"
value="1x2"
checked
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > 1× 2 (Booklet)< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="grid-mode"
value="2x2"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > 2× 2< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="grid-mode"
value="2x4"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > 2× 4< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="grid-mode"
value="4x4"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > 4× 4< / span >
< / label >
< / div >
< label class = "block mt-4 mb-3 text-sm font-medium text-white"
>Orientation< /label
>
< div class = "space-y-2" >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="orientation"
value="auto"
checked
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > Auto (best for layout)< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="orientation"
value="portrait"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > Portrait< / span >
< / label >
< label
class="flex items-center gap-2 cursor-pointer text-sm text-gray-300"
>
< input
type="radio"
name="orientation"
value="landscape"
class="w-4 h-4 text-indigo-600 bg-gray-700 border-gray-600"
/>
< span > Landscape< / span >
< / label >
< / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< / div >
2026-01-07 16:55:12 +05:30
< / div >
< div class = "flex gap-4 mb-6" >
< button
id="preview-btn"
class="flex-1 bg-gray-700 hover:bg-gray-600 text-white font-semibold py-3 px-4 rounded-lg transition-colors"
disabled
>
< i data-lucide = "eye" class = "w-4 h-4 inline-block mr-2" > < / i >
Generate Preview
< / button >
< button
id="download-btn"
class="flex-1 btn-gradient"
disabled
data-i18n="tools:pdfBooklet.createBooklet"
>
< i data-lucide = "download" class = "w-4 h-4 inline-block mr-2" > < / i >
Create Booklet
< / button >
< / div >
< div
id="booklet-preview"
class="bg-gray-900 rounded-lg border border-gray-700 p-4 min-h-[200px] overflow-auto"
>
< p class = "text-gray-400 text-center py-8" >
Upload a PDF and click "Generate Preview" to see the booklet
layout
< / p >
< / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< / div >
2026-01-07 16:55:12 +05:30
< / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< / div >
2026-01-07 16:55:12 +05:30
< div
id="loader-modal"
class="hidden fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50"
>
< div
class="bg-gray-800 p-8 rounded-lg flex flex-col items-center gap-4 border border-gray-700 shadow-xl"
>
< div class = "solid-spinner" > < / div >
< p
id="loader-text"
class="text-white text-lg font-medium"
data-i18n="tools:pdfBooklet.processing"
>
Processing...
< / p >
< / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< / div >
2026-01-07 16:55:12 +05:30
< div
id="alert-modal"
class="fixed inset-0 bg-gray-900 bg-opacity-90 flex items-center justify-center z-50 hidden"
>
< div
class="bg-gray-800 rounded-lg shadow-xl p-6 max-w-sm w-full border border-gray-700"
>
< h3
id="alert-title"
class="text-xl font-bold text-white mb-2"
data-i18n="alert.title"
>
Alert
< / h3 >
< p id = "alert-message" class = "text-gray-300 mb-6" > < / p >
< button
id="alert-ok"
class="w-full bg-indigo-600 hover:bg-indigo-700 text-white font-semibold py-2 px-4 rounded-lg transition-colors duration-200"
>
OK
< / button >
< / div >
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< / div >
2026-01-02 21:33:06 +05:30
<!-- How It Works Section -->
< section class = "max-w-4xl mx-auto px-4 py-12" >
2026-02-02 16:30:59 +05:30
< h2
class="text-2xl md:text-3xl font-bold text-white mb-8 text-center"
data-i18n="howItWorks.title"
>
2026-01-07 16:55:12 +05:30
How It Works
< / h2 >
< div class = "space-y-6" >
< div class = "flex items-start gap-4" >
< div
class="flex-shrink-0 w-10 h-10 bg-indigo-600 rounded-full flex items-center justify-center text-white font-bold"
>
1
< / div >
< div class = "flex-1" >
< h3 class = "text-lg font-semibold text-white mb-1" > Upload File< / h3 >
2026-02-02 16:30:59 +05:30
< p class = "text-gray-400" data-i18n = "howItWorks.step1" >
2026-01-07 16:55:12 +05:30
Click or drag and drop your file to begin
< / p >
< / div >
< / div >
< div class = "flex items-start gap-4" >
< div
class="flex-shrink-0 w-10 h-10 bg-indigo-600 rounded-full flex items-center justify-center text-white font-bold"
>
2
< / div >
< div class = "flex-1" >
< h3 class = "text-lg font-semibold text-white mb-1" > Process< / h3 >
2026-02-02 16:30:59 +05:30
< p class = "text-gray-400" data-i18n = "howItWorks.step2" >
Click the process button to start
< / p >
2026-01-07 16:55:12 +05:30
< / div >
2025-12-30 12:36:30 +05:30
< / div >
2026-01-07 16:55:12 +05:30
< div class = "flex items-start gap-4" >
< div
class="flex-shrink-0 w-10 h-10 bg-indigo-600 rounded-full flex items-center justify-center text-white font-bold"
>
3
< / div >
< div class = "flex-1" >
< h3 class = "text-lg font-semibold text-white mb-1" > Download< / h3 >
2026-02-02 16:30:59 +05:30
< p class = "text-gray-400" data-i18n = "howItWorks.step3" >
Save your processed file instantly
< / p >
2026-01-07 16:55:12 +05:30
< / div >
< / div >
< / div >
2026-01-02 21:33:06 +05:30
< / section >
<!-- Related Tools Section -->
< section class = "max-w-6xl mx-auto px-4 py-12" >
2026-02-02 16:30:59 +05:30
< h2
class="text-2xl md:text-3xl font-bold text-white mb-6 text-center"
data-i18n="relatedTools.title"
>
2026-01-07 16:55:12 +05:30
Related PDF Tools
< / h2 >
< div class = "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4" >
< a
feat(i18n): add static pre-rendering for multi-language support
- Add `generate-i18n-pages.mjs` script to pre-render localized HTML files at build time
- Add `generate-sitemap.mjs` script to generate language-aware sitemap.xml
- Create `navbar-simple.html` and `footer-simple.html` partials for simple mode
- Update all 80+ tool pages with language routing support
- Expand supported languages to 12: en, de, es, fr, it, pt, tr, vi, id, zh, zh-TW
- Update i18n.ts with new language names and support configuration
- Implement languageRouterPlugin in vite.config.ts for dev server routing
- Update nginx.conf for production static file serving from language directories
- Update TRANSLATION.md with new architecture documentation and language addition guide
- Fix relative paths in 404.html for static deployment compatibility
- Update package.json with new build scripts and dependencies
- Improves SEO through static pre-rendering and proper sitemap generation
2026-01-14 21:04:56 +05:30
href="merge-pdf.html"
2026-01-07 16:55:12 +05:30
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
< h3 class = "text-white font-semibold mb-1" > Merge Pdf< / h3 >
< p class = "text-gray-400 text-sm" > Free online merge pdf tool< / p >
< / a >
< a
feat(i18n): add static pre-rendering for multi-language support
- Add `generate-i18n-pages.mjs` script to pre-render localized HTML files at build time
- Add `generate-sitemap.mjs` script to generate language-aware sitemap.xml
- Create `navbar-simple.html` and `footer-simple.html` partials for simple mode
- Update all 80+ tool pages with language routing support
- Expand supported languages to 12: en, de, es, fr, it, pt, tr, vi, id, zh, zh-TW
- Update i18n.ts with new language names and support configuration
- Implement languageRouterPlugin in vite.config.ts for dev server routing
- Update nginx.conf for production static file serving from language directories
- Update TRANSLATION.md with new architecture documentation and language addition guide
- Fix relative paths in 404.html for static deployment compatibility
- Update package.json with new build scripts and dependencies
- Improves SEO through static pre-rendering and proper sitemap generation
2026-01-14 21:04:56 +05:30
href="compress-pdf.html"
2026-01-07 16:55:12 +05:30
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
< h3 class = "text-white font-semibold mb-1" > Compress Pdf< / h3 >
< p class = "text-gray-400 text-sm" > Free online compress pdf tool< / p >
< / a >
< a
feat(i18n): add static pre-rendering for multi-language support
- Add `generate-i18n-pages.mjs` script to pre-render localized HTML files at build time
- Add `generate-sitemap.mjs` script to generate language-aware sitemap.xml
- Create `navbar-simple.html` and `footer-simple.html` partials for simple mode
- Update all 80+ tool pages with language routing support
- Expand supported languages to 12: en, de, es, fr, it, pt, tr, vi, id, zh, zh-TW
- Update i18n.ts with new language names and support configuration
- Implement languageRouterPlugin in vite.config.ts for dev server routing
- Update nginx.conf for production static file serving from language directories
- Update TRANSLATION.md with new architecture documentation and language addition guide
- Fix relative paths in 404.html for static deployment compatibility
- Update package.json with new build scripts and dependencies
- Improves SEO through static pre-rendering and proper sitemap generation
2026-01-14 21:04:56 +05:30
href="split-pdf.html"
2026-01-07 16:55:12 +05:30
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
< h3 class = "text-white font-semibold mb-1" > Split Pdf< / h3 >
< p class = "text-gray-400 text-sm" > Free online split pdf tool< / p >
< / a >
< a
feat(i18n): add static pre-rendering for multi-language support
- Add `generate-i18n-pages.mjs` script to pre-render localized HTML files at build time
- Add `generate-sitemap.mjs` script to generate language-aware sitemap.xml
- Create `navbar-simple.html` and `footer-simple.html` partials for simple mode
- Update all 80+ tool pages with language routing support
- Expand supported languages to 12: en, de, es, fr, it, pt, tr, vi, id, zh, zh-TW
- Update i18n.ts with new language names and support configuration
- Implement languageRouterPlugin in vite.config.ts for dev server routing
- Update nginx.conf for production static file serving from language directories
- Update TRANSLATION.md with new architecture documentation and language addition guide
- Fix relative paths in 404.html for static deployment compatibility
- Update package.json with new build scripts and dependencies
- Improves SEO through static pre-rendering and proper sitemap generation
2026-01-14 21:04:56 +05:30
href="edit-pdf.html"
2026-01-07 16:55:12 +05:30
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
< h3 class = "text-white font-semibold mb-1" > Edit Pdf< / h3 >
< p class = "text-gray-400 text-sm" > Free online edit pdf tool< / p >
< / a >
< a
feat(i18n): add static pre-rendering for multi-language support
- Add `generate-i18n-pages.mjs` script to pre-render localized HTML files at build time
- Add `generate-sitemap.mjs` script to generate language-aware sitemap.xml
- Create `navbar-simple.html` and `footer-simple.html` partials for simple mode
- Update all 80+ tool pages with language routing support
- Expand supported languages to 12: en, de, es, fr, it, pt, tr, vi, id, zh, zh-TW
- Update i18n.ts with new language names and support configuration
- Implement languageRouterPlugin in vite.config.ts for dev server routing
- Update nginx.conf for production static file serving from language directories
- Update TRANSLATION.md with new architecture documentation and language addition guide
- Fix relative paths in 404.html for static deployment compatibility
- Update package.json with new build scripts and dependencies
- Improves SEO through static pre-rendering and proper sitemap generation
2026-01-14 21:04:56 +05:30
href="rotate-pdf.html"
2026-01-07 16:55:12 +05:30
class="block bg-gray-800 p-4 rounded-lg hover:bg-gray-700 transition-colors border border-gray-700"
>
< h3 class = "text-white font-semibold mb-1" > Rotate Pdf< / h3 >
< p class = "text-gray-400 text-sm" > Free online rotate pdf tool< / p >
< / a >
< / div >
2026-01-02 21:33:06 +05:30
< / section >
<!-- FAQ Section -->
< section class = "max-w-4xl mx-auto px-4 py-12" >
2026-02-02 16:30:59 +05:30
< h2
class="text-2xl md:text-3xl font-bold text-white mb-6 text-center"
data-i18n="faq.sectionTitle"
>
2026-01-07 16:55:12 +05:30
Frequently Asked Questions
< / h2 >
< div class = "space-y-4" >
< details class = "bg-gray-800 p-5 rounded-lg border border-gray-700" >
< summary
class="cursor-pointer font-semibold text-white flex items-center justify-between"
>
Is pdf booklet really free?
< i data-lucide = "chevron-down" class = "w-5 h-5" > < / i >
< / summary >
< p class = "mt-3 text-gray-400" >
Yes! BentoPDF is 100% free with no hidden fees, no signup required,
and unlimited file processing.
< / p >
< / details >
< details class = "bg-gray-800 p-5 rounded-lg border border-gray-700" >
< summary
class="cursor-pointer font-semibold text-white flex items-center justify-between"
>
Are my files private and secure?
< i data-lucide = "chevron-down" class = "w-5 h-5" > < / i >
< / summary >
< p class = "mt-3 text-gray-400" >
Absolutely! All processing happens in your browser. Your files never
leave your device, ensuring complete privacy.
< / p >
< / details >
< details class = "bg-gray-800 p-5 rounded-lg border border-gray-700" >
< summary
class="cursor-pointer font-semibold text-white flex items-center justify-between"
>
Is there a file size limit?
< i data-lucide = "chevron-down" class = "w-5 h-5" > < / i >
< / summary >
< p class = "mt-3 text-gray-400" >
No! Process files of any size, as many times as you want, completely
free.
< / p >
< / details >
< / div >
2026-01-02 21:33:06 +05:30
< / section >
2026-01-12 22:11:01 +05:30
{{> footer }}
feat: Add VitePress docs, EPUB to PDF tool, Phosphor icons, and licensing updates
- Set up VitePress documentation site (docs:dev, docs:build, docs:preview)
- Added Getting Started, Tools Reference, Contributing, and Commercial License pages
- Created self-hosting guides for Docker, Vercel, Netlify, Cloudflare, AWS, Hostinger, Nginx, Apache
- Updated README with documentation link, sponsors section, and docs contribution guide
- Added EPUB to PDF converter using LibreOffice WASM
- Migrated to Phosphor Icons for consistent iconography
- Added donation ribbon banner on landing page
- Removed 'Like My Work?' section (replaced by ribbon)
- Updated licensing.html with delivery model, AGPL notice, invoicing, and no-refund policy
- Added Commercial License documentation page
- Updated translations table (Chinese added, marked non-English as In Progress)
- Added sponsors.yml workflow for auto-generating sponsor avatars
2025-12-27 19:30:31 +05:30
< script type = "module" src = "/src/js/utils/lucide-init.ts" > < / script >
< script type = "module" src = "/src/js/utils/full-width.ts" > < / script >
< script type = "module" src = "/src/js/utils/simple-mode-footer.ts" > < / script >
< script type = "module" src = "/src/version.ts" > < / script >
< script type = "module" src = "/src/js/logic/pdf-booklet-page.ts" > < / script >
< script type = "module" src = "/src/js/mobileMenu.ts" > < / script >
< script type = "module" src = "/src/js/main.ts" > < / script >
2025-12-30 12:36:30 +05:30
2026-01-02 21:33:06 +05:30
<!-- JSON - LD Structured Data -->
< script type = "application/ld+json" >
2026-01-07 16:55:12 +05:30
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Pdf Booklet - BentoPDF",
"applicationCategory": "PDF Tool",
"operatingSystem": "Any - Web Browser",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"ratingCount": "1453"
}
}
< / script >
2026-01-02 21:33:06 +05:30
< script type = "application/ld+json" >
2025-12-30 12:36:30 +05:30
{
2026-01-07 16:55:12 +05:30
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to pdf booklet online",
"description": "Learn how to pdf booklet using BentoPDF",
"step": [
{
"@type": "HowToStep",
"position": 1,
"name": "Upload File",
"text": "Click or drag and drop your file"
},
{
"@type": "HowToStep",
"position": 2,
"name": "Process",
"text": "Click the process button"
},
{
"@type": "HowToStep",
"position": 3,
"name": "Download",
"text": "Download your processed file"
}
]
2025-12-30 12:36:30 +05:30
}
2026-01-07 16:55:12 +05:30
< / script >
2026-01-02 21:33:06 +05:30
< script type = "application/ld+json" >
2025-12-30 12:36:30 +05:30
{
2026-01-07 16:55:12 +05:30
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.bentopdf.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Pdf Booklet",
"item": "https://www.bentopdf.com/pdf-booklet"
}
]
2025-12-30 12:36:30 +05:30
}
2026-01-07 16:55:12 +05:30
< / script >
< / body >
< / html >