Commit Graph

140 Commits

Author SHA1 Message Date
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
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
c6fb46cbf2 feat: fix favicon implementation for Google search and PWA support
- Add background to favicon.svg (RGB 38,45,59)
- Generate all required PNG sizes (192x192, 512x512, 180x180)
- Create site.webmanifest with proper PWA config
- Standardize favicon links across 116 HTML files
- Fix incorrect MIME types in 50+ pages
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
Alam
731434e557 Merge pull request #262 from hemantapkh/main
fix:  Absolute paths for logo and favicons
2025-12-17 11:04:39 +05:30
Connor Smith
71aac226ed Fix edit-pdf-page.ts and revert fileHandler.ts 2025-12-15 17:11:38 -05:00
EmeraldPi
d07d12a975 Buid and package EmbedPDF.js using Github workflow 2025-12-14 19:02:53 -05:00
Hemanta Pokharel
61b4cfe5df fix: broken logo path on language change 2025-12-14 14:35:26 +05:45
abdullahalam123
1fe05ec59f ci: Improve Docker build workflow and update dependencies
- Add release type detection to distinguish between version tags and edge builds
- Implement separate Docker build steps for release and edge builds with appropriate tags
- Add edge and SHA-based image tags for main branch builds
- Update nginx configuration to support Vietnamese (vi) language routing
- Simplify nginx location block to handle static files and fallback to index.html
- Remove javascript-obfuscator and ts-migrate from dependencies
- Update README with simplified self-hosting instructions using npx http-server
- Consolidate multiple server setup examples into single recommended approach
- Update build preview command to use npm run preview instead of npx serve
- Improve localization files for German, English, Vietnamese, and Chinese
- Update worker files and TypeScript logic files for improved functionality
- Enhance PDF tool pages with better structure and internationalization support
2025-12-13 20:57:32 +05:30
zhenyao xu
264ccd77d8 Merge branch 'main' into main 2025-12-12 19:14:25 +00:00
cxllxc
ab122e19df feat: Add internationalization support and introduce a new PDF multi-tool. 2025-12-12 12:54:06 +00:00
cxllxc
3c0fbc8f8f at: Add Chinese language support with new i18n utilities and update routing configura 2025-12-12 12:41:40 +00:00
Tuyn Doan
39e35b3282 Merge branch 'main' into feat/add-vietnamese-language 2025-12-12 08:48:47 +07:00
Tuyn Doan
6e68b08d80 feat(seo): Add Vietnamese hreflang tags to all HTML pages 2025-12-12 08:49:23 +07:00
abdullahalam123
d3fe6b2fcc chore: Refactor Dockerfile and update HTML favicon links
- Simplify Dockerfile by removing redundant BASE_URL handling logic and complex RUN commands
- Change SIMPLE_MODE default from true to false for production builds
- Fix indentation inconsistencies in Dockerfile conditional statements
- Move favicon link tags from body to head section in all HTML files for proper semantic structure
- Replace inline favicon links with img tag in navigation logo across all pages
- Update README.md documentation to clarify BASE_URL trailing slash requirements
- Remove commented-out legacy Dockerfile code for cleaner maintenance
- Consolidate favicon declarations in document head for better performance and SEO
2025-12-12 00:19:24 +05:30
Tuyn Doan
8c065fcdf0 feat(i18n): Add Vietnamese (Tiếng Việt) language support
- Add Vietnamese translation files (common.json and tools.json)
- Register 'vi' as a supported language in i18n configuration
- Update language switcher to support Vietnamese footer text
- Update URL routing regex to handle /vi/ paths

All 170 translation keys have been translated to Vietnamese.
Users can now access BentoPDF in Vietnamese by visiting /vi/ URLs.
2025-12-12 00:58:08 +07:00
abdullahalam123
6eaa7c18ea fix: Add space between consecutive data-i18n attributes in HTML files. 2025-12-11 19:40:57 +05:30
abdullahalam123
a83d9b6604 Merge branch 'port-to-standalone-pages' 2025-12-11 19:35:28 +05:30
abdullahalam123
78dc6333f9 setup i18n and ported all tools to standalone pages 2025-12-11 19:34:14 +05:30
Pavel Akhrameev
e831a477d2 Change image embedding from PNG to JPEG format
using PNG increased filesize from ~60 MB to ~112 MB. That's too much. May require some "quality" parameter adjustment.
2025-12-05 04:29:40 +04:00
abdullahalam123
c682f9d9b3 fix(config): Remove leading slash from merge PDF tool path
- Remove leading slash from merge-pdf.html path in tools configuration
- Ensure consistent path resolution with BASE_URL environment variable
- Fix asset path handling for subdirectory hosting compatibility
2025-12-05 00:38:08 +05:30
abdullahalam123
b279c05281 feat: Add subdirectory hosting support and fix asset path resolution
- Update README with comprehensive subdirectory hosting instructions and BASE_URL configuration guide
- Convert absolute asset paths to relative paths in index.html for proper subdirectory deployment
- Update all worker script imports to use relative paths instead of absolute paths
- Fix favicon and image references to work correctly when hosted in nested directories
- Normalize whitespace and formatting across worker files for consistency
- Update vite.config.ts to properly handle BASE_URL configuration for subdirectory deployments
- Ensure all tool pages and logic files maintain compatibility with subdirectory hosting
- Enable BentoPDF to be deployed at any URL path (e.g., example.com/tools/bentopdf/) without breaking asset loading
2025-12-04 23:53:00 +05:30
abdullahalam123
19425d98f9 feat: Add JPG to PDF conversion tool with dedicated page and logic. 2025-12-04 21:21:34 +05:30
abdullahalam123
62d1b9ada2 feat: add new Edit PDF tool with dedicated page and logic, and update build configuration 2025-12-04 15:29:01 +05:30
abdullahalam123
9620084789 feat: Add dedicated compress PDF page and reimplement compression logic. 2025-12-04 14:32:37 +05:30
abdullahalam123
6676fe9f89 feat: Reimplement PDF splitting functionality on a new dedicated page. 2025-12-04 14:02:20 +05:30
abdullahalam123
fb3063324c feat: implement dedicated merge PDF tool page with new logic and UI structure 2025-12-04 12:26:57 +05:30
abdullahalam123
649aec046d feat(ocr,form-creator): Add comprehensive font support and TypeScript type definitions
- Add @pdf-lib/fontkit dependency for enhanced font rendering capabilities
- Create font-mappings.ts configuration with language-to-font-family mappings for 100+ languages
- Implement font-loader.ts utility for dynamic font loading from CDN sources
- Add TypeScript type definitions for form-creator, OCR, and general application types
- Create types/index.ts as centralized type exports
- Remove hidden-on-touch CSS class and update shortcuts button styling for better accessibility
- Update OCR text layer rendering to support multilingual font families
- Enhance form-creator with improved font handling for international text
- Update txt-to-pdf with font support for diverse character sets
- Migrate fileHandler to support new font loading workflow
- Update main.ts and ui.ts to integrate new type system and font utilities
- Update form-creator.html page with enhanced font configuration UI
2025-12-03 23:13:14 +05:30
abdullahalam123
09436a689d feat(rotate,delete-pages): Add custom rotation angles and enhance page management UI
- Add TypeScript type definitions for merge and alternate-merge Web Workers
- Implement custom rotation angle input with increment/decrement controls for rotate tool
- Extend delete-pages tool to render page thumbnails for better UX
- Hide number input spin buttons across all number inputs via CSS
- Refactor rotateAll function to accept angle parameter instead of direction multiplier
- Update fileHandler to support delete-pages tool thumbnail rendering
- Improve type safety in alternate-merge logic with proper interface definitions
- Enhance rotate tool UI with custom angle input field and adjustment buttons
2025-12-01 14:54:46 +05:30
abdullahalam123
c5764e4172 feat(favicon,repair-pdf): Add favicon support and implement PDF repair tool
- Add favicon.ico to public directory for browser tab display
- Update favicon references across all HTML pages with proper link tags for SVG, PNG, and ICO formats
- Add Apple touch icon support for iOS devices
- Create new repair-pdf.ts logic module for PDF repair functionality
- Create new repair-pdf-page.ts utility module for page-level repair operations
- Add repair-pdf.html page with UI for PDF repair tool
- Register repair PDF tool in tools configuration and PDF tools registry
- Update UI rendering utilities to support new repair tool
- Improve favicon handling with multiple format fallbacks for cross-browser compatibility
- Standardize favicon paths to use absolute URLs for consistency
- Clean up whitespace and formatting in licensing.html for code consistency
2025-12-01 12:44:34 +05:30
abdullahalam123
8651ca366f feat(merge): Migrate merge operations to Web Workers and reorganize tool categories
- Create merge.worker.js and alternate-merge.worker.js for offloading PDF merge operations to background threads
- Migrate merge and alternate-merge logic to use Web Worker architecture for improved performance
- Move flatten tool from singlePdfLoadTools to multiFileTools configuration
- Update merge and alternate-merge tool subtitles to indicate bookmark preservation
- Refactor alternate-merge.ts to use Web Worker instead of pdf-lib for interleaving operations
- Refactor merge.ts to use Web Worker for standard merge operations
- Update fileHandler.ts to recognize flatten as a multi-file tool requiring process button handling
- Simplify form-creator.ts and flatten.ts implementations with Web Worker integration
- Update UI state management to support Web Worker-based PDF processing
- Improve performance by moving computationally intensive PDF operations off the main thread
2025-11-28 20:49:49 +05:30
abdullahalam123
6b7163991e feat(ui): Add GitHub integration and enhance hero section design
- Add GitHub star counter badge to navigation (desktop and mobile)
- Implement grid pattern background in hero section
- Redesign hero title with inline PDF Toolkit badge and briefcase icon
- Update feature badges styling with improved visual hierarchy
- Refactor CTA button layout with icon integration
- Add simple-mode-footer utility component for footer management
- Update all tool pages with consistent styling improvements
- Enhance responsive design for mobile navigation with GitHub link
- Improve visual consistency across all pages with updated color scheme
2025-11-26 18:33:08 +05:30
abdullahalam123
6e7563d0c2 fix(bookmark-pdf): Improve page reference resolution and simplify destination handling
- Refactor findPageIndex() to use multiple resolution strategies (direct ref comparison, object number matching, string representation, numeric values)
- Add resolvedPageRef parameter to findPageIndex() for more efficient page dictionary matching
- Improve named destination handling to properly extract 'D' entry from dictionary-wrapped destinations
- Remove unnecessary resolveRef() call on destination arrays to preserve array structure integrity
- Pass resolved page reference to findPageIndex() for better accuracy in page lookup
- Simplify footer markup across multiple pages (add-stamps, bookmark, form-creator, json-to-pdf, pdf-to-json, table-of-contents) by removing redundant background color and grid layout
- Enhance error handling and logging for page reference resolution diagnostics
2025-11-25 14:52:34 +05:30
abdullahalam123
e8c0e82d29 feat(form-creator): Simplify date field rendering and fix PDF date actions
- Refactor date field UI rendering to use inline HTML with calendar icon and format text
- Consolidate date format and keystroke action creation by removing unnecessary widget loop
- Attach Additional Actions (AA) directly to field dictionary instead of individual widgets
- Improve code clarity and reduce redundant DOM manipulation in date field initialization
- Ensure date formatting and keystroke validation work correctly at the field level in generated PDFs
2025-11-24 21:43:33 +05:30
abdullahalam123
95927cd899 squash: feat: Create fillable PDF forms 2025-11-24 21:16:23 +05:30
abdullahalam123
83aadb6d98 fix: enhance shortcut key detection for alt key combinations and update Discord invite link across all pages. 2025-11-21 19:32:08 +05:30