--- snapshot-1781342049+++ snapshot-1789251376@@ -2,7 +2,19 @@
Release notes from bentopdf
-2026-05-23T09:27:58Z tag:github.com,2008:Repository/1074785178/v2.8.5 2026-05-23T10:14:06Z
+2026-08-29T09:17:42Z tag:github.com,2008:Repository/1074785178/v2.8.8 2026-08-29T10:53:49Z
+
+Text Editing In BentoPDF! and many more - v2.8.8
+
+
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
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 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 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
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.
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! ❤️
This release addresses security vulnerabilities (GHSA-wh78-rcw2-hhg9, GHSA-5xjf-rr5x-pcfj, GHSA-cx8x-7rrr-r9x8) affecting all versions up to and including v2.8.6. All users are strongly advised to upgrade to v2.8.7 immediately.
Full technical details will be published after the coordinated-disclosure window has passed.
I genuinely appreciate people taking the time to look into BentoPDF's security with thoughtful reports that make the project better, and improve the project's security.
But having said that, there has been a big problem. Since LLMs became widely available, a large share of incoming security reports are low effort, machine generated submissions describing, at best, minor bugs, not vulnerabilities, and certainly not CVEs. In one such instance, I received over twenty such "CVE" reports from three different accounts within about thirty minutes which is of course not humanly possible to write with detail in such a short stretch. But none of which held up, and all of which were clearly LLM generated. Reviewing each of them carefully still took me a week
I'm not against using AI to assist research; used judiciously, it's a great tool. But I won't spend time reviewing reports or even PRs whose authors haven't first read the actual code, tested against main, and confirmed the issue is real. If you file a report, please make sure you've done at least that. Genuine, verified findings will always be welcomed and credited.
Also Coming next in next release!
The next release of BentoPDF will be the biggest one yet:
Real in-app PDF text editing . The testing is complete.
A new hyper-compression engine.. Available via CLI or in the browser
Kura, a new PDF/A engine covering twenty conversion targets across every published archival and production PDF standard:
PDF/A — all eleven levels: 1b/1a, 2b/2u/2a, 3b/3u/3a, 4/4f/4e
PDF/UA — accessibility (UA-1 and UA-2), layered onto any PDF/A level
PDF/X — print production: X-1a, X-3, X-4, X-6, with real ICC-based RGB→CMYK conversion
PDF/E and PDF/VT — engineering documents and variable/transactional print
Factur-X / ZUGFeRD electronic invoices
Kura will also be available via CLI or in the browser (via WASM)
With this shipped, I'll also have more time to review code and PRs actively again.
What's Changed
build(deps): bump linkify-it from 5.0.0 to 5.0.1 by @dependabot[bot] in #768
Update and improve zh-TW Traditional Chinese locale by @PeterDaveHello in #785
build(deps): bump linkify-it from 5.0.1 to 5.0.2 by @dependabot[bot] in #802
build(deps-dev): bump undici from 7.24.5 to 7.29.0 by @dependabot[bot] in #801
build(deps-dev): bump brace-expansion from 2.0.3 to 2.1.2 by @dependabot[bot] in #794
The past few weeks I've been working on reducing BentoPDF's third-party library dependencies. Going forward, the core PDF stack will be just three libraries: pdf-lib.js, qpdf, and PDFium. Progress has been solid so far.
I also fell deep into a rabbit hole with PDF compression, and I think I've landed something genuinely interesting: better raw compression than Ghostscript, while preserving PDF fidelity. I'll be open sourcing it soon after more testing, and it'll become BentoPDF's core compression engine. More updates coming shortly!
What's Changed
1. Multi-tool: drag-and-drop for PDFs and images.
The PDF multi-tool now accepts both PDF and image files via drag-and-drop
2. Split PDF Refactor
This fixes a long-standing size problem: when a PDF shared resources (fonts/images) across pages, extracting just a few pages could produce a file nearly as large as the original.
The single "Download as ZIP" checkbox conflated what you get with how it is packaged. It is replaced by a clear choice: Single combined PDF vs One PDF per range/page and ZIP packaging is now applied automatically whenever more than one file is produced.
What's More
fix(md to pdf): restore mermaid flowchart node labels. Fixes #738 by @mondeep31 in #739 ❤️
Thank you for using BentoPDF. Going forward there will be a lot of new changes and interesting features that have been lined up. Have a great weekend! ❤️
github-actions[bot] tag:github.com,2008:Repository/1074785178/v2.8.5 2026-05-23T10:14:06Z
Bug Fixes - v2.8.5
@@ -30,16 +42,4 @@
PDF to CBZ - v2.7.0
-
Dad Joke Of the Release
What do you call a meditating dog? Aware wolf 🐺🤣
What's Changed
1. New PDF to CBZ (Comic Book Archive) Tool
Convert any PDF into a CBZ file for comic book readers like Komga, Kavita, CDisplayEx, and Calibre
Choose between JPEG, PNG, or WebP image formats with quality and scale controls
Optional grayscale conversion and manga mode (right-to-left reading)
Full metadata support with ComicInfo.xml, metadata.opf, and ComicBookInfo JSON which works with both comic readers AND Calibre
Fill in Title, Series, Volume, Issue Number, Author, Publisher, Tags, Published Year, and Rating
2. PDF to TIFF Revamp
Added compression options: LZW, Deflate, CCITT Group 4, JPEG, PackBits, or None
DPI slider (72–600) for print-quality control
Color mode selector: Color (RGB), Greyscale, or Black & White (1-bit)
Multi-page TIFF support — save all pages as a single TIFF file instead of a ZIP
CCITT Group 4 compression auto-selects B&W mode for optimal document archival
3. PDF Editor Update
Added Free Highlight annotation tool
Added Insert Text annotation
Added Replace Text annotation
Added Comment annotations
Annotations can now be rotated
4. OCR Improvement
Fonts are now subsetted instead of fully embedded by default, significantly reducing output file size
Added option to opt out and embed full fonts if needed
Bug Fixes
Fixed Docker healthcheck using curl (not available in Alpine image) and now uses wget
Fixed custom 404 page not being served by nginx and added error_page 404 directive
Why did the laptop get cold? Cause it let its Windows open🤣
What's Changed
This release transforms BentoPDF's Compare PDFs from a basic side by side viewer into a full semantic comparison engine that provides parity with commercial solutions. Every change between two PDFs including text edits, style tweaks, moved paragraphs, image modifications and annotation diffs is now detected, categorized, and navigable.
1. PDF Comparison Rewrite
Semantic Text Diffing
Word-level diff engine with exact bounding-box highlighting on both documents
Handles additions, deletions, modifications, and full page insertions/removals
CJK word segmentation for accurate Chinese, Japanese, and Korean comparisons
Moved-Text Detection
Detects paragraphs that moved position between documents (≥3 words, ≥80% Jaccard similarity)
Collapsed into single "Moved" changes with purple highlights instead of noisy add/remove pairs
Style Change Detection
Detects font family and font size changes on otherwise identical text
Content Category Classification
Every detected change is automatically classified into one of six categories: Text, Image, Header/Footer, Annotation, Formatting, Background
Header/footer detection based on y-position analysis (top/bottom 12% of page)
Image comparison via area-overlap matching (detects added, removed, and resized images)
Annotation diffing compares subtype, contents, and position
Background change detection triggers when visual mismatch exceeds text change coverage
Smart Page Pairing
Automated page-pairing model using content signatures instead of naive page-number matching
Correctly handles inserted/deleted pages between document versions
OCR Support
OCR for scanned documents, toggled from the toolbar
OCR results cached in LRU cache to avoid redundant processing
Low-quality text detection auto-triggers OCR when extracted text is unreliable
Filter System
Change type filter pills: Modified, Added, Deleted, Moved, Style Changed