Dad Joke Of the Release
What do you call a bee that can't make up its mind? A maybe 🤣
The Biggest Release of BentoPDF yet!
This is the biggest release of BentoPDF. BentoPDF can now edit text, image, shapes in BentoPDF and there are two new engines Kura and Hyper Compress. Detailed Explanation is below.
PDF Text Editing
BentoPDF can now edit the actual text inside a PDF. You can click any paragraph and type. Text reflows live, fonts and styling are preserved, and everything runs entirely in your browser, as always.
- Edit in place with live reflow, real font matching, and word wrap that follows the original layout
- Full styling: bold, italic, underline, strikethrough, superscript, subscript, font family and size, text colour, outline colour and width, character and line spacing
- Paragraph control: left / centre / right / justify alignment, bulleted and numbered lists with indent levels, and left-to-right and right-to-left text
- Find & replace across the document, plus spell-check with a personal dictionary and per-language switching
- Images: add, replace in place, or export a PNG, edit it in any app, and have your saved changes re import automatically
- Objects: align, distribute, rotate, flip, duplicate, and reorder front to back. Even commercial software like Apryse and Nutrient do not support this
- Accessibility: alt text for tagged PDFs, and reading-order text export
- Undo / redo, document properties, page navigation, zoom presets
This was arguably the hardest feature I had built so far. Given the complex nature of PDFs and the different ways it can be produced, you might encounter certain bugs.
Note
Local fonts access is only available on chromium based browsers such as Chrome and Edge. Other browsers have a limitation of not having the font access API.
Hyper Compress is the best open source PDF compression engine
hyper.bentopdf.com · github.com/alam00000/bentopdf-hyper-compress
Hyper is a High fidelity, content preserving PDF compressor that preserves PDF conformance.
- Monotonic: Hyper never returns a larger file. If compression does not save space, you get the original back untouched. This makes it useful for workflows so you can have a predicctable output.
- True lossless mode, with no quality loss
- Verified output: transformations that can affect visual fidelity are checked and rolled back when a page cannot be reproduced faithfully. 0.39% corruption rate, the lowest of any engine measured
- Benchmarked against Ghostscript, MuPDF and qpdf across 2,104 real-world PDFs and 27,352 engine runs, with fidelity measured by an independent renderer:
| Tier | Hyper | Ghostscript | MuPDF | qpdf |
|---|---|---|---|---|
| Lossless | 22.4% @ SSIM 1.000 | 21.1% @ 0.997 | 4.7% @ 1.000 | 6.3% @ 1.000 |
| 300 dpi | 52.3% @ 1.000 | 19.1% @ 0.996 | 14.0% @ 1.000 | n/a |
| 150 dpi | 58.2% @ 0.999 | 42.4% @ 0.994 | 19.4% @ 1.000 | n/a |
| 72 dpi | 64.8% @ 0.996 | 53.9% @ 0.990 | 28.0% @ 0.999 | n/a |
- Ships as a CLI, Node SDK, C API, self-hosted service, and a WebAssembly build for the browser
Kura is a PDF standards and preflight engine
kura.bentopdf.com · github.com/alam00000/bentopdf-kura
Kura turns everyday PDFs into archival, print and accessible ones, from a single engine.
- Supports every standard: all 11 PDF/A levels, PDF/UA-1 and UA-2, PDF/X-1a through X-6, PDF/E-1 and PDF/VT, plus Factur-X, ZUGFeRD, XRechnung and Order-X e-invoices
- Print preflight built in: 396 bundled profiles covering hairlines, rich black, image resolution, overprint, transparency, page boxes, fonts and colour, with repairs where a repair exists, and your own profiles in JSON or the XML dialect you already use
- Validates clean: 0 red on the veraPDF corpus, Isartor 204/204, BFO 34/34, Ghent Output Suite 5.0 69/69, PDF/UA Reference Suite 10/10, Cal Poly PDF/VT 24/24
- Proven on real files: 30,677 real-world PDFs converted, zero crashes, zero timeouts, 0.05 s median
- Also Ships as a CLI, C library, npm package, Docker image, and a WebAssembly build that runs entirely in the browser
Note
Both Kura and Hyper are not yet integrated into BentoPDF. I need to do some further tests and optimizations after which they will be ready to be integrated. However they are stable and you can try them out
🐛 Bug Fixes
- Webpage strings fail to render on self-hosted simple version on some browsers #833
- Service Worker not precaching assets #830
- PDF To Tiff OOM bug #829
- Bug In PDF commenting where the cursor moved to EOL #809
- URL redirection issue #796
- WASM Initialization timeout error #324
New Features & Improvements
- Author names can now be changed in PDF Editor - #707
- Github API Call is optional - #269
- Korean, CJK, Indic and other Non Latin Texts were not supported in PDF Editor when added as text. this has now been fixed. Also the text is now written into the content stream, its searchable and selectable . - #404
- BentoPDF live website now has removed Simple Analytics. It used to track anonymous visit count only. But as a pledge to complete privacy both BentoPDF live website and self hosted tools have 0 analytics.
- New Duplex sort tool by @r0ckarong - #752 ❤️
- A polyfill fix for pdf.js which caused rendering crashes in older browsers by @mvanhorn - #795 ❤️
- Translations and other fixes by @PeterDaveHello and @Stephan-P ❤️
What's More
- build(deps): bump dompurify from 3.4.11 to 3.4.12 by @dependabot[bot] in #805
- build(deps): bump PDF engine and viewer to 7ffa16f9c5cd by @github-actions[bot] in #838
- Fix broken star history chart in README by @OctoBored in #835 ❤️
- Update nl/tools.json by @Stephan-P in #824 ❤️
- build(deps): bump postcss from 8.5.16 to 8.5.26 by @dependabot[bot] in #823
- build(deps): bump nanoid from 3.3.15 to 3.3.18 by @dependabot[bot] in #832
- build(deps): bump mermaid from 11.16.0 to 11.16.1 by @dependabot[bot] in #821
- build(deps-dev): bump brace-expansion from 2.1.2 to 2.1.4 by @dependabot[bot] in #822
- Correct grammar, wording, branding, and metadata inconsistencies by @PeterDaveHello in #790 ❤️
- fix: polyfill Map.prototype.getOrInsertComputed to stop PDF.js render crash by @mvanhorn in #795
- build(deps): bump PDF engine and viewer to b9854c1098fc by @github-actions[bot] in #841
- (Feature) Add Duplex sort / collate documents (Fixes #220) by @r0ckarong in #752
- build(deps): bump PDF engine and viewer to f48637921bf4 by @github-actions[bot] in #843
- build(deps): bump PDF engine and viewer to 8ff5002c6cd5 by @github-actions[bot] in #844
New Contributors
- @github-actions[bot] made their first contribution in #838
- @OctoBored made their first contribution in #835 ❤️
- @mvanhorn made their first contribution in #795 ❤️
- @r0ckarong made their first contribution in #752 ❤️
A Note From Dev
Thank you so much for your continued support of BentoPDF. ❤️
Unfortunately, I broke my hand a couple of weeks ago, so this release was originally planned to include several more features, including Measurement, an Acrobat Parity Comparison Tool, Print Production, and Accessibility. I wasn't able to get them ready in time, but once I'm fully recovered, I'll be working on bringing them to BentoPDF as soon as possible.
I really look forward to hearing what you think of this release! If you run into any bugs or issues, please don't hesitate to report them.
Have a wonderful weekend, and thank you again for all your support! ❤️
Full Changelog: v2.8.7...v2.8.8