Commit Graph

203 Commits

Author SHA1 Message Date
alam00000
2c6d36037a refactor: move PageWatermarkConfig interface to dedicated types file
feat(i18n): add missing translations for 5 languages
- be: common.close, upload.clearFiles
- zh: addStamps username fields
- zh-TW, tr, pt: compressPdf compression settings
2026-02-27 15:00:51 +05:30
Alam
9220507f63 Merge pull request #519 from hagibr/update-tool-translation-keys
Adding 'PDF Workflow Builder' and 'Bates Numbering' to toolTranslationKeys
2026-02-26 20:34:25 +05:30
alam00000
85d90c3382 feat: node creation and serialization logic in workflow editor 2026-02-26 20:28:16 +05:30
alam00000
88260c26ab Refactor color input fields and enhance watermark functionality
- Updated color input fields in various HTML pages to remove unnecessary classes for improved styling consistency.
- Modified the watermark node to include options for positioning and flattening watermarks.
- Enhanced the addTextWatermark function to support customizable positioning and page selection for watermarks.
- Added new controls for text and image watermarks in the UI, allowing users to specify text, font size, color, opacity, angle, and image scaling.
- Updated the WASM provider to use the latest version of pymupdf-wasm.
2026-02-26 19:40:22 +05:30
Alexandre Hagihara
582e5bf9cb Adding 'PDF Workflow Builder' and 'Bates Numbering' to toolTranslationKeys 2026-02-26 09:38:01 -03:00
alam00000
64153e698b fix: improve error handling, race condition and optimize page rendering logic in pdf multi tool 2026-02-25 13:17:30 +05:30
alam00000
a119837c8a fix: improve error handling in performCondenseCompression function
fix: routing
2026-02-21 14:27:53 +05:30
alam00000
3cae20a10c feat: add Bates numbering tool with PDF processing capabilities
- Implemented bates-numbering-page.ts for handling Bates numbering logic.
- Created a new HTML page for Bates numbering functionality.
- Added style presets and file handling for multiple PDF uploads.
- Integrated user interface elements for file selection, style customization, and preview.
- Enhanced main.ts to support collapsible categories and compact mode for tool grid.
- Updated types for Bates numbering in bates-numbering-type.ts.
- Registered the new tool in tools.html and updated routing in vite.config.ts.
2026-02-21 14:05:48 +05:30
alam00000
e6c8eaf23c fix: improve CORS proxy handling and update documentation for certificate fetching 2026-02-20 16:07:38 +05:30
alam00000
3cf435d59d feat: add custom branding, air-gapped deployment script, and updated self-hosting docs 2026-02-14 21:41:45 +05:30
alam00000
75b1d67fbd feat: add support for default UI language configuration and non-root Dockerfile 2026-02-13 13:45:11 +05:30
alam00000
45be8b832d feat: implement PDF password handling and enhance toolbox UI for better accessibility 2026-02-09 12:27:52 +05:30
alam00000
d36c1f4ab9 feat: add RedactNode for secure PDF text redaction and update node registry 2026-02-08 20:40:16 +05:30
alam00000
49cccf95b4 fix: image compression functionality and integrate quality selection for PDF conversion 2026-02-08 20:12:07 +05:30
alam00000
5d8b83e105 Add visual workflow builder, fix critical bugs, and add Arabic i18n support 2026-02-08 17:05:40 +05:30
Alam
bd957717a2 Merge pull request #459 from TheScienceotter/fix-watermark_rotation
(Fix) Rotate watermark text around centre of page
2026-02-05 19:03:12 +05:30
Frørup Andelskasse
abba411cf0 Update i18n.ts
Added danish
2026-02-03 14:30:54 +01:00
alam00000
93e26ea178 fix: WASM CDN defaults bypass Docker empty env vars, nginx redirect port issue
- Fix envOrDefault() to treat empty strings as unset, so Docker builds
  without WASM build args correctly fall through to hardcoded CDN defaults
- Show CDN defaults as placeholder text in WASM settings page instead of
  filling input values, with "Pre-configured" status badge
- Fix nginx redirecting locale URLs without trailing slash (e.g. /de) to
  internal port 8080 by adding absolute_redirect off
- Handle encrypted PDF error in compress tool with descriptive message
- Replace Docker Hub pulls badge with GHCR downloads badge
2026-02-02 19:38:04 +05:30
alam00000
f9ddd51eb1 refactor: streamline WASM package configuration and improve default URL handling 2026-02-02 17:12:02 +05:30
alam00000
70f31aa90e fix: Add internationalization support for various pages by updating text elements with data-i18n attributes for better localization 2026-02-02 16:30:59 +05:30
alam00000
612f6f9a2d feat: add WASM module configuration with pre-configured CDN URLs and update settings UI 2026-02-02 15:14:30 +05:30
alam00000
325519b9f7 feat: add adjust colors and scanner effect pages with corresponding types and configurations 2026-02-01 12:21:14 +05:30
alam00000
5c1b00e9d1 fix: update supported languages and improve PDF editor functionality with multi file support 2026-01-31 15:24:08 +05:30
Alam
b616ec0fbf Merge pull request #432 from pavel-miniutka/main
Added Belarusian translation
2026-01-31 13:58:06 +05:30
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
pavel-miniutka
9e1aeb178a Added Belarusian translation 2026-01-27 16:29:24 +03:00
alam00000
a14c046b89 fix: pymupdf-wasm to use the latest version 2026-01-27 17:26: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
alam00000
446b399be2 refactor: extract navbar and footer into reusable handlebars partials
- Replace duplicated navbar markup across all HTML pages with {{> navbar }} partial
- Replace duplicated footer markup across all HTML pages with {{> footer }} partial
- Add TypeScript type definitions for vite-plugin-handlebars integration
- Update vite.config.ts to support handlebars partial compilation
- Update tsconfig.json to include handlebars type definitions
- Update nginx.conf for proper static file serving with partials
- Update translation files for de, pt, tr, vi, and zh-TW locales
- Reduce code duplication and improve maintainability across 13+ HTML pages
- Ensure consistent navbar and footer behavior across the entire application
2026-01-13 15:13:57 +05:30
abdullahalam123
dfd56c12d5 refactor: extract navbar and footer into reusable partials
- Extract navbar component from index.html into src/partials/navbar.html
- Extract footer component from index.html into src/partials/footer.html
- Add update-partials.js script to automate partial injection into page templates
- Update all 80+ page templates to use injected navbar and footer partials
- Update vite.config.ts to support partial file processing
- Update package.json and package-lock.json with build script changes
- Sync all translation files (de, en, fr, id, it, pt, tr, vi, zh, zh-TW) with latest keys
- Improves maintainability by centralizing navbar and footer updates across all pages
2026-01-12 22:11:01 +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