Commit Graph
437 Commits
Author SHA1 Message Date
alam00000 538e940525 Merge main into add-farsi-translation 2026-10-22 12:47:54 +05:30
Alam 853182d6a3 Merge pull request #916 from sergitost10/feat/catalan-translation
feat(i18n): add Catalan language support
2026-10-22 12:38:34 +05:30
Alam 33d15b9890 Merge pull request #886 from adrienboulle/fix-825-untranslated-notifications
fix(merge-pdf): route result notifications through i18n
2026-10-21 12:33:35 +05:30
Alam 8cfd91ccb3 Merge pull request #853 from nipunrajk/fix/navigation-base-url
fix(navigation): respect BASE_URL in tool pages and navbar brand (Fixes #850)
2026-10-21 12:28:21 +05:30
Alam 5222f6c0bf Merge pull request #902 from mvanhorn/fix/647-sign-pdf-flatten-text-position
fix: keep flattened Sign PDF text at its placed position
2026-10-21 12:24:30 +05:30
Alam 6314db7b88 Merge pull request #885 from adrienboulle/fix-831-validate-signature
fix(validate-signature): detect signature dictionaries without /Type
2026-10-21 12:18:10 +05:30
Alam 02113e2579 Merge pull request #894 from nipunrajk/fix/markdown-task-list-links
fix(markdown): prevent task lists with links from corrupting DOM
2026-10-21 12:00:48 +05:30
alam00000 0d430027df feat: replace compression with Hyper Compress, fix PDF to Word color pass and stale engine URLs 2026-10-20 22:06:30 +05:30
alam00000 2f96455896 chore: stop tracking generated build files, fix sponsors workflow and refresh README hero 2026-10-19 18:14:45 +05:30
Adrien Boullé 448035b77b fix(merge-pdf): keep worker errors out of the alert, add missing fr key 2026-10-19 12:30:29 +02:00
Adrien Boullé ab8f4c20a8 fix(merge-pdf): route result notifications through i18n
Fixes #825
2026-10-19 12:30:29 +02:00
Adrien BoulléandClaude Opus 5.5 d86de593ca fix(validate-signature): detect signature dictionaries without /Type
/Type is optional in a signature dictionary (PDF 32000-1, 12.8.1) and some
signers leave it out, so those documents still reported "No Signatures
Found". A dictionary without /Type that carries both /ByteRange and
/Contents is now read as a signature; document timestamps
(/Type /DocTimeStamp, /SubFilter /ETSI.RFC3161) stay out because they hold
an RFC 3161 token, not a CMS signature over the document.

Also covers a /Contents placeholder of 74,506 hex characters, the largest
seen in real signed documents, which the former fixed scan window dropped.

Fixes #831

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 12:27:34 +02:00
alam00000 edd959f345 fix(security): harden sanitize, flatten, redaction, signature validation, CSP, proxies and CI 2026-10-19 14:45:00 +05:30
alam00000 70dc47d25c feat: update GitHub Actions workflow for PDF engine and viewer 2026-10-19 13:17:07 +05:30
alam00000 4c314b8a13 Update service worker cache version 2026-10-19 01:07:55 +05:30
sergitost10 5a6d6bc411 feat(i18n): add Catalan language support 2026-10-15 09:49:50 +02:00
Matt Van Horn 4fd0b1d3e6 fix: keep flattened Sign PDF text at its placed position
readFormMatrix loads the appearance Matrix and uses the identity when
that entry is missing or is not six numbers. alignAppearanceToRect maps
the four BBox corners through that matrix and returns the scale and
translation that fit the transformed box to the annotation rectangle.
Those values are the cm concatenated before Do, and the original Matrix
stays on the form XObject so Do applies it once. A transformed box whose
width or height is under 0.001 is left unpainted, and that annotation is
still removed.

Fixes #647
2026-10-02 22:16:51 -07:00
nipunrajk 15c0435dde fix(markdown): prevent task lists with links from corrupting DOM
Disables label wrapping in markdown-it-task-lists plugin configuration.
When enabled, markdown-it-task-lists wraps task list content in <label>
tags, which malforms HTML structure when items contain links on the
same line and swallows subsequent DOM elements.

Fixes #715
2026-09-26 16:10:32 +05:30
nipunrajk daacdd2a2e test(navigation): constrain brand anchor regex to individual elements 2026-09-26 09:23:44 +05:30
nipunrajk 060d57639e test(navigation): tighten BASE_URL assertions per code review 2026-09-26 09:22:15 +05:30
nipunrajk 90fe106664 fix(navigation): respect BASE_URL in tool pages and navbar brand (Fixes #850) 2026-09-26 09:22:15 +05:30
Alam ea3f42db84 Merge pull request #869 from carminezac/fix/timestamp-default-cors-proxy
fix(timestamp): fall back to the default CORS proxy on official domains
2026-09-21 13:52:45 +05:30
alam00000 5a7927572f feat: add fallback font loading and handling for various languages 2026-09-17 13:56:16 +05:30
Alam a44ad4d7d3 Merge pull request #761 from nine-dev9/polish-translation
Add Polish translation
2026-09-16 03:24:27 +05:30
Carmine Zacchia 3aefd7bb06 fix(timestamp): fall back to the default CORS proxy on official domains
The timestamp tool requires a CORS proxy: none of the built-in TSA endpoints send Access-Control-Allow-Origin, so the browser blocks the RFC 3161 POST. The runtime only used a proxy when VITE_CORS_PROXY_URL was set, and the official build never set it, leaving timestamping broken on www.bentopdf.com and on the published Docker images.

Fall back to the project-operated proxy on the official domains only (bentopdf.com, www.bentopdf.com), matching the origin already allowed in the generated CSP. Self-hosted instances keep requiring their own proxy.
2026-09-13 23:18:59 +02:00
alam00000 c5ec840d10 feat: add testimonial with real users 2026-09-14 02:37:46 +05:30
alam00000 d69566ebef fix footer issue 2026-09-05 12:55:31 +05:30
alam00000 d931a71589 feat: add FAQ modal in PDF Multi Tool and Workflow pages 2026-09-05 11:43:12 +05:30
alam00000 9e980cdea2 seo fixes 2026-09-04 16:26:08 +05:30
alam00000 f404ff021a feat: add Kura and Hyper Compress product pages, redesign site 2026-09-02 18:29:22 +05:30
Kouros Zanbouri a36e2d6ae6 Merge branch 'main' into add-farsi-translation 2026-08-30 22:50:46 +01:00
alam00000 4f57cb076f fix: improve touch event handling for paragraph selection and editing for mobile devices 2026-08-26 18:23:56 +05:30
alam00000 acdca59f18 add:trasnlations to duplex collate 2026-08-24 23:19:16 +05:30
Alam 829b13f8ff Merge pull request #752 from r0ckarong/duplex-pr-clean
(Feature) Add Duplex sort / collate documents (Fixes #220)
2026-08-24 22:46:36 +05:30
alam00000 bf513bbcb9 fix: performance fixes and duplicate text bug 2026-08-24 16:45:30 +05:30
r0ckarong 7831571696 Add translation strings, remove local files 2026-08-24 08:57:32 +02:00
alam00000 c449a85745 fix: load the pdf.js worker with the Map upsert polyfill 2026-08-22 16:02:34 +05:30
Alam 8e606b652c Merge pull request #795 from mvanhorn/fix/662-map-upsert-polyfill
fix: polyfill Map.prototype.getOrInsertComputed to stop PDF.js render crash
2026-08-22 15:58:31 +05:30
Alam 121c3d891a Merge branch 'main' into grammar-wording-branding-metadata-fixes 2026-08-22 14:32:56 +05:30
alam00000 5bcdd8deeb chore: add pdf text editor to popular tools 2026-08-22 14:00:44 +05:30
alam00000 7f6bebf21f feat: PDF text editor internationalization 2026-08-22 14:00:07 +05:30
alam00000 aee3e0a65a test: cover the text editor engine and FreeText flattening
Adds a node-side harness that drives the engine wasm directly, fixtures
that build PDFs in-memory, and cases for font fallback and flattening.
The engine loader now tolerates a runtime without import.meta.resolve so
the suite can load it outside a browser.
2026-08-21 12:50:07 +05:30
alam00000 5392c1be76 fix: text editor selection, styling, and script coverage
Clears the previous document before opening a new one, keeps the
selection when clicking the dock or rotating a box, refreshes the glass
overlay so style changes preview every time, adds double-click word
selection, and widens the Windows font stacks for Indic scripts. The
dock now publishes its own height so the swatches lay out correctly on
small screens.
2026-08-21 12:49:56 +05:30
alam00000 356128c60d feat: burn FreeText annotations into the page content stream
Exported annotations stayed as live FreeText objects, so viewers that
ignore appearance streams showed nothing and the text was not part of
the page. Flattening draws them into the content stream with an
embedded subset of the font, falling back to the old embed path for
anything the flattener cannot place.
2026-08-21 12:49:25 +05:30
alam00000 8dc7509ceb build: run the viewer and the text editor on one engine
Both vendored packages now come from a single build of the engine fork.
The viewer tarball ships without its own copy of pdfium.wasm and loads
the shared engine through EmbedPDF.init({ wasmUrl }), which drops it
from 7.1 MB to 2.1 MB and removes the second WebAssembly instance.
2026-08-21 12:49:03 +05:30
alam00000 cba16fe750 refactor: swap the lucide upload icon for phosphor 2026-08-21 12:48:48 +05:30
alam00000 6b4e9f2a94 fix: trim whitespace from resource body 2026-08-18 20:54:41 +05:30
alam00000 75e76c9619 feat: add Edit PDF Text tool and related functionality 2026-08-18 20:04:25 +05:30
alam00000 78cb827ec7 feat: update BentoPDF viewer to version 2.9.1 and add font embedding support 2026-08-17 13:42:56 +05:30
alam00000 e8f26c4a70 refactor: replace embedpdf-snippet with bentopdf-viewer 2026-08-16 13:10:16 +05:30