Commit Graph

164 Commits

Author SHA1 Message Date
Richard Grimes
5e66d42f59 Position of watermark text now calculated in polar coordinates
Watermark text will now appear to rotate around the page centre, rather than at the bottom corner of the text element.
2026-01-30 11:50:17 +01:00
alam00000
75df8a48cb fix:gs loading issue 2026-01-30 15:50:08 +05:30
alam00000
fa10e97a00 refactor: remove ghostscript-wasm and update service worker and ghostscript loader
- Deleted the ghostscript-wasm binary file.
- Added new ICC profile file for color management.
- Updated service worker to change cache version and remove ghostscript-wasm assets from critical assets.
- Modified ghostscript loader to handle asset URLs more robustly and fetch the new ICC profile correctly.
2026-01-30 15:24:33 +05:30
alam00000
a85f21dcb5 fix: apply network-first strategy to language prefixed URLs in service worker 2026-01-30 14:19:42 +05:30
alam00000
2c85ca74e9 feat: separate AGPL libraries and add dynamic WASM loading
- Add WASM settings page for configuring external AGPL modules
- Implement dynamic loading for PyMuPDF, Ghostscript, and CoherentPDF
- Add Cloudflare Worker proxy for serving WASM files with CORS
- Update all affected tool pages to check WASM availability
- Add showWasmRequiredDialog for missing module configuration

Documentation:
- Update README, licensing.html, and docs to clarify AGPL components
  are not bundled and must be configured separately
- Add WASM-PROXY.md deployment guide with recommended source URLs
- Rename "CPDF" to "CoherentPDF" for consistency
2026-01-27 15:26:26 +05:30
Alam
f6d432eaa7 Merge pull request #405 from LoganK/crop_restore
(Fix) Restore crop bounds when navigating
2026-01-27 13:54:01 +05:30
alam00000
c010327daa fix: detect language prefix in relative hrefs without leading slash 2026-01-26 23:14:05 +05:30
alam00000
62c373d76a fix: resolve i18n issues - URL duplication, translation loading, and caching
- Fix URL path duplication when clicking logo (added missing leading slash)
- Use network-first caching for translation files in service worker
- Add missing translation keys (common.close, upload.clearFiles) to all languages
- Add Dutch (nl) language support to URL regex patterns
- Bump service worker cache version to v8
2026-01-26 22:34:36 +05:30
Alam
2d99a28b07 Merge pull request #386 from sheing-google/feat/organize-by-page-number-15124152069150472705
feat: Add page number string reordering to Organize PDF tool
2026-01-26 17:17:09 +05:30
Alam
4825997299 Merge branch 'main' into main 2026-01-26 15:28:56 +05:30
Stephan Paternotte
53a03599e4 Update i18n.ts
My attempt to resolve the PR conflict
2026-01-23 08:39:03 +01:00
Logan Kennelly
23e40f9ef9 fix(crop-pdf): Restore crop bounds when navigating
cropperjs ignores attempts to modify the data before ready. This change
migrates setup to a one-time 'ready' callback.

Steps:
1. Change the cropping bounds of page 1
2. Change to page 2
3. Change to page 1
4. Change to page 2
5. Download cropped PDF

Observed behavior:
* (3) shows the default (autocrop) bounds
* (5) results in a download without the set bounds

Expected behavior:
* (3) should restore the bounds already set
* (4) should not override the set bounds with the autocrop

Tested:
* Local builds using the docker dev config
2026-01-19 01:14:07 -08:00
sheing-google
4a23dabd52 feat: Add page number string reordering to Organize PDF tool
This commit introduces a new feature to the "Organize PDF" tool that allows users to reorder pages by providing a comma-separated string of page numbers.

An "Advanced Settings" section has been added to the UI, containing a text input for the page order and an "Apply Order" button. The implementation includes validation for the input and updates the page thumbnail grid accordingly.
2026-01-14 21:11:11 +00:00
alam00000
abf7ae8a00 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
alam00000
90346d7ea9 feat: Simple Mode language routing and translation improvements
## Simple Mode Enhancements
- Add `simple-index.html` as dedicated homepage for Simple Mode
- Hide marketing sections (FAQ, How It Works, Related Tools) on tool pages
- Add simplified navbar and footer for tool pages in Simple Mode
- Configure vite preview server to handle language-prefixed URLs

## Language Routing
- Add middleware to rewrite language-prefixed URLs (e.g., /de/merge-pdf.html)
- Support all languages: en, de, es, fr, id, it, pt, tr, vi, zh, zh-TW
- Create .htaccess with internal rewrites for Apache/Hostinger hosting

## Translation Updates
- Add missing translations for digitalSignPdf, validateSignaturePdf,
  emailToPdf, fontToOutline, deskewPdf to es, pt, tr, zh-TW
- Add Digital Signature and Validate Signature to homepage translation keys
- Fix language regex patterns to include all supported languages
- Fix typo in encrypt-pdf.html
2026-01-14 02:31:44 +05:30
Alam
7eeae0bda5 Merge branch 'main' into add-spanish-translation 2026-01-13 22:45:05 +05:30
alam00000
b57c9a8575 fix: made bookmark pdf type safe 2026-01-13 16:59:25 +05:30
abdullahalam123
8337c8b45b Merge branch 'fix/pdf-form-creator-bug' 2026-01-12 14:16:05 +05:30
abdullahalam123
cf61212515 feat(form-creator): add custom date formats, fix duplicate field bug, improve sticky UX
Bug Fixes:
- Fix duplicate field appearing when removing all options from dropdown/list and dragging
- Fix selected tool button ring being clipped by removing overflow-hidden from Fields toolbar

Date Format Enhancements:
- Add all 30 Adobe Acrobat-compatible date formats
- Add ISO 8601 formats (yyyy-mm-dd, yyyy-mm, yyyy)
- Add European dot-separated formats (dd.mm.yyyy, dd.mm.yy)
- Add date-time formats with 12h/24h time support
- Add Custom format option with input field
- Add live date format example preview

UI/UX Improvements:
- Make Properties sidebar sticky on large screens
- Make Page Management toolbar sticky below navbar
- Make Fields toolbar sticky below Page Management toolbar
- Increase Fields toolbar padding for better spacing
- Fix browser note text alignment in date properties
2026-01-12 13:30:54 +05:30
NightFeather
5e9ac1c492 Merge branch 'main' into i18n/zh-TW 2026-01-12 15:55:44 +08:00
Stanislas MEZUREUX
584acc68d0 feat(i18n): Add French (Français) language support 2026-01-11 23:38:39 +01:00
NightFeather
1ac0f751e8 Add Traditional Chinese (zh-TW) localization 2026-01-11 03:19:45 +08:00
abdullahalam123
c5799954dc fix(ocr): improve text layer alignment with width-based font sizing
- Create new hocr-transform.ts utility for parsing hOCR output
- Add line-aware text processing with baseline and rotation support
- Implement width-based font size calculation to match word bounding boxes
- Fix text selection not covering full characters issue
- Add proper type definitions for OcrLine, OcrPage, WordTransform
- Support RTL languages and CJK word break handling
2026-01-10 13:09:52 +05:30
abdullahalam123
1f7238d0b5 feat: add Deskew PDF and Font to Outline tools with improved issue templates
New Features:
- Add Deskew PDF tool for straightening scanned/skewed PDF pages
- Add Font to Outline tool for converting text to vector paths
- Add translations for new tools in all supported locales (de, en, id, it, tr, vi, zh)

Improvements:
- Migrate GitHub issue templates from markdown to YAML forms
  - Separate templates for bug reports, feature requests, and questions
  - Add config.yml for issue template chooser
- Update sitemap.xml with new tool pages
- Update ghostscript loader and helper utilities
2026-01-09 20:53:36 +05:30
Raul Gonzalez
cc891f2b0a Merge branch 'main' of https://github.com/alam00000/bentopdf into add-spanish-translation 2026-01-08 14:01:02 -06:00
abdullahalam123
280348763d feat(email-to-pdf): add inline images, clickable links, and embedded attachments
- Add CID inline image support via base64 data URI replacement
- Implement clickable link extraction from HTML anchors using regex
- Embed email attachments into PDF using pymupdf embfile_add
- Reduce font sizes for more compact PDF output (18px subject, 12px body)
- Format date with timezone (UTC+HH:MM) while preserving original time
- Clean email address formatting (Name (email) instead of <brackets>)
- Add UI options: page size selector, CC/BCC toggle, attachments toggle
2026-01-08 21:36:21 +05:30
Alam
11ea5d21c5 Merge branch 'main' into add-lang-tr 2026-01-08 13:58:26 +05:30
Hanif Naufal
7907f20907 fix: correct Indonesian language name in languageNames mapping 2026-01-08 00:09:39 +07:00
Hanif Naufal
5f8e94c41f feat: add Indonesian language support with translations for common phrases and tools 2026-01-07 22:49:05 +07:00
abdullahalam123
4cec0e2be4 chore: update sitemap with signature tools and clean unused imports 2026-01-07 16:55:12 +05:30
abdullahalam123
b51d611c8a Fix header/subtitle FOUC and Simple Mode translations
- Refactor tool page headers to prevent flash of unstyled content (FOUC):
  - Move long SEO titles to visually hidden `<h1>` tags for search engines.
  - Use `<h2>` for visible tool titles with text matching i18n keys.
  - Sync default HTML subtitles with [tools.json]
2026-01-06 20:48:59 +05:30
Raul Gonzalez
e34b106e10 Merge remote-tracking branch 'upstream/main' into add-spanish-translation 2026-01-06 08:27:11 -06:00
abdullahalam123
a347cbda3d Configure ESLint with Prettier and TypeScript support.
- Baseline existing errors to warnings.
- Fix Image to PDF tool for HEIC and WebP inputs.
- Apply linting auto-fixes.
2026-01-05 19:04:47 +05:30
abdullahalam123
c9b9482cb6 fix: webp & heic convert in images to pdf 2026-01-05 18:35:17 +05:30
abdullahalam123
d52d2e3647 refactor: move all TypeScript interfaces to centralized src/js/types folder
- Create type files with barrel export via @/types alias
- Update logic files to use centralized type imports
2026-01-05 14:57:30 +05:30
abdullahalam123
8a96426254 feat(cors-proxy): add anti-spoofing security measures
Security improvements for the Cloudflare Worker CORS proxy:

- Add rate limiting per IP (60 requests/minute) using Cloudflare KV
- Add file size limit (10MB max) to prevent abuse
- Add HMAC signature verification (optional, for deterrence)
- Add timestamp validation to prevent replay attacks
- Block private IP ranges (localhost, 10.x, 192.168.x, 172.16-31.x)

Client-side changes:
- Add signature generation in digital-sign-pdf.ts
- Add security warning about client-side secrets

Documentation:
- Update README with production security features
- Update docs/self-hosting/cloudflare.md with CORS proxy section
- Document KV setup for rate limiting
- Add clear warnings about client-side HMAC limitations

Files changed:
- cloudflare/cors-proxy-worker.js
- cloudflare/wrangler.toml
- src/js/logic/digital-sign-pdf.ts
- README.md
- docs/self-hosting/cloudflare.md
2026-01-05 13:44:35 +05:30
Alam
534eb01010 Merge pull request #325 from Timmy93/main
Add italian localization
2026-01-04 19:26:51 +05:30
abdullahalam123
05110c7f6a feat: Add Digital Signature and Validate Signature tools
New Features:
- Digital Signature tool: Sign PDFs with X.509 certificates (PFX/PEM)
  - Visible and invisible signatures
  - All pages, first page, last page, or custom page selection
  - Dynamic signature height based on text content
  - Custom signature text, image, and styling options

- Validate Signature tool: Verify digital signatures in PDFs
  - Extract and parse PKCS#7 signatures
  - View signer and issuer certificate details
  - Check certificate validity and expiry
  - Optional custom X.509 certificate for trust verification
  - Full/partial coverage detection

Infrastructure:
- Added Cloudflare Worker CORS proxy for certificate chain fetching
- Updated README with new tools and proxy deployment instructions

Documentation:
- Added Digital Signature and Validate Signature to README tools table
- Added CORS proxy deployment guide for self-hosters
2026-01-04 19:09:11 +05:30
abdullahalam123
d9561d79b9 fix: nginx.conf for docker deployment 2026-01-04 00:56:06 +05:30
abdullahalam123
771de32cf0 feat: add digital signature PDF tool
- Add new tool to apply cryptographic signatures to PDFs using X.509 certificates
- Support PKCS#12 (.pfx, .p12) and PEM certificate formats
- Create PKCS#7 detached signatures compatible with all major PDF viewers
- Optional visible signature with customizable position, image, and text overlay
- Add translations for English, German, Vietnamese, and Chinese
2026-01-03 20:47:50 +05:30
abdullahalam123
0914acf46e fix: add fallback for cbz to pdf for unsupported formats 2026-01-03 14:23:45 +05:30
abdullahalam123
c6e9e29e84 update: year 2026-01-02 21:34:39 +05:30
Raul Gonzalez
14afebb5f0 Add spanish translation and update documentation with missing steps 2026-01-02 07:00:27 -06:00
abdullahalam123
bddd11c07b fix(pdf-a): fix PDF/A-2b and PDF/A-3b transparency compliance
- Add post-processing step using pdf-lib to fix ISO 19005-2/3 clause 6.2.10
- Add Group dictionaries with ICC-based color space to all pages
- Fix XObjects (Form XObjects) that have DeviceRGB in their Group dictionaries
- Reference OutputIntent's ICC profile as the blending color space
- Enable page compression for smaller output files

This ensures PDFs with transparency pass VeraPDF validation for PDF/A-2b and PDF/A-3b.
2026-01-02 17:04:50 +05:30
abdullahalam123
bb42a5aec0 fix: split-pdf page range 2026-01-01 19:21:10 +05:30
abdullahalam123
2f8086ad59 refactor: centralize CDN config and fix service worker fallback
- Centralize CDN versions/URLs in cdn-version.ts
- Switch LibreOffice to @bentopdf/libreoffice-wasm package
- Fix service worker fallback to support all WASM packages
- Remove dead code and silence production logs
2026-01-01 19:21:10 +05:30
abdullahalam123
4e5d747cac add: seo 2025-12-30 12:36:30 +05:30
abdullahalam123
8bae2b662a fix: markdown to pdf spacing and added mermaid diagram support 2025-12-29 14:59:11 +05:30
Federico
c9aa895894 Add italian localization
- Added it locale
- Add it language ro other config files (nginx.conf, vite.config.ts, i18n.ts)
2025-12-29 01:09:46 +01:00
abdullahalam123
f30a084fce 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:38:33 +05:30