Reece
c100c9f10d
Split refactor
2025-07-16 00:12:54 +01:00
Reece
37484f64f9
Viewer fixes with multi file support
2025-07-15 12:41:45 +01:00
Reece
9cec0e743c
Viewer improvements
2025-07-15 01:00:05 +01:00
Reece
934cd01268
Refactor viewer
2025-07-15 00:48:54 +01:00
Reece
be251d271d
Restore/refactor endpoint mamagement. refactor usetool management
2025-07-15 00:20:59 +01:00
Reece
5e401d255e
Remove merge error returning code
2025-07-15 00:07:48 +01:00
Reece
2419425dc9
Merge branch 'Stirling-2.0' of https://github.com/reecebrowne/Stirling-PDF into Stirling-2.0
2025-07-14 23:46:45 +01:00
Reece
cb5c35249f
Homepage refactor, tool management refactor
2025-07-14 23:38:33 +01:00
Reece
5d7c572929
Update claude.md
2025-07-14 18:14:36 +01:00
Reece
3d0d479ad7
Remove merge from here in file editor
2025-07-14 16:05:09 +01:00
Reece Browne
a1553b2a14
Merge branch 'feature/react-overhaul' into Stirling-2.0
2025-07-11 11:48:29 +01:00
Reece Browne
d3900c33a2
Delete frontend/src/examples/ExampleToolUsage.tsx
2025-07-11 10:50:39 +01:00
Reece
7694837764
Clean up
2025-07-10 20:20:03 +01:00
Reece
83b8c9be09
feat: Enhance PDF splitting functionality and operation history tracking
...
- Improved the useEnhancedProcessedFiles hook to only update processed files when content changes.
- Added preview functionality for split PDF files in the HomePage component.
- Implemented a new PDFExportService with enhanced error handling and file validation.
- Updated Split tool to generate and display thumbnails for split PDF files.
- Introduced a comprehensive FileOperationHistory component to track and display file operations.
- Enhanced file context types to support new operation types and history management.
- Created a ZipFileService for validating and extracting PDF files from ZIP archives.
2025-07-10 17:51:50 +01:00
Reece
c7dce8a68f
Split reimplementation
2025-07-10 01:48:13 +01:00
Reece
666c15fabd
Remove url params for now. small refactor
2025-07-09 19:46:44 +01:00
Reece
33420c7e80
Implement navigation warning modal and unsaved changes management
2025-07-08 16:00:25 +01:00
Reece
9b63bffb36
refactor: Update PageThumbnail component to use page numbers instead of IDs for drag-and-drop functionality and selection management
...
- Changed selectedPages, draggedPage, dropTarget, and movingPage props from string to number type.
- Updated event handlers and state management to reflect the use of page numbers.
- Enhanced logging for better debugging during thumbnail generation and worker communication.
refactor: Simplify FileContext by removing mergedDocuments state and related actions
- Removed mergedDocuments from FileContextState and associated actions in the reducer.
- Updated selectedPageIds to selectedPageNumbers for consistency in page selection handling.
fix: Improve thumbnail generation service logging and error handling
- Added detailed logging for thumbnail generation progress and worker job management.
- Implemented better error handling for worker timeouts and main thread fallbacks.
style: Clean up FileGrid component for better readability and maintainability
- Adjusted formatting and spacing in the FileGrid component for improved code clarity.
2025-07-08 00:02:48 +01:00
Reece
2f9c88b000
Optimize PageEditor performance and fix view switching issues
...
Major performance improvements and UX enhancements:
PERFORMANCE FIXES:
- Add merged document caching in FileContext to prevent re-processing on view switches
- Implement hash-based cache fallback for File object identity preservation
- Add pagination for large documents (>200 pages) to prevent DOM overload
- Convert synchronous operations to async chunked processing
- Optimize effect dependencies to prevent unnecessary re-renders
- Remove aggressive cleanup on view switches that destroyed caches
UI/UX IMPROVEMENTS:
- Add immediate visual feedback with loading spinners in view switching buttons
- Implement skeleton loaders for smooth transitions during processing
- Add progress indicators with real-time percentages
- Defer heavy operations using requestAnimationFrame to allow UI updates
- Create reusable SkeletonLoader component for consistent loading states
CACHE SYSTEM:
- Move processed file cache management to FileContext for persistence
- Add stable cache key generation based on file combinations
- Implement smart cache invalidation only when files are actually removed
- Preserve thumbnails and page data across view switches
BUG FIXES:
- Fix infinite loop errors caused by circular hook dependencies
- Resolve File object recreation breaking Map lookups
- Fix thumbnail loading issues in PageEditor
- Prevent UI thread blocking during PDF merging operations
TECHNICAL DEBT:
- Centralize memory management in FileContext
- Add proper cleanup for removed files while preserving active caches
- Implement async/await patterns for better error handling
- Add performance debugging with console timing
Result: PageEditor now loads instantly when returning to cached files,
large documents render smoothly with pagination, and view switching
provides immediate feedback even during heavy operations.
2025-07-04 11:17:10 +01:00
Reece
759055a96d
Page editor tweaks
2025-07-01 16:07:36 +01:00
ConnorYoh
50d745225c
Merge pull request #3833 from Stirling-Tools/feature/react-backend-config-access
...
Feature/react backend config access
2025-06-30 09:28:36 +01:00
Reece
35820e8a24
Replace filemanager with recent files system
2025-06-27 21:32:20 +01:00
Reece
61699a08a5
Clean up of thumbnail generation
2025-06-27 20:30:47 +01:00
Connor Yoh
f446fcd50b
Remove excess hidden, premium key and redundant code
2025-06-27 18:29:04 +01:00
ConnorYoh
618485576d
Merge pull request #3834 from Stirling-Tools/pixeebot/feature/react-backend-config-access
...
Hardening suggestions for Stirling-PDF / feature/react-backend-config-access
2025-06-27 18:25:27 +01:00
pixeebot[bot]
e75213a206
Switch order of literals to prevent NullPointerException
2025-06-27 17:17:11 +00:00
Reece
3730429153
Optimising pageeditor
2025-06-27 18:11:23 +01:00
Connor Yoh
248a14c571
Added config controller to be used by react frontend
2025-06-27 18:00:35 +01:00
Connor Yoh
62fb5025a9
Whitespace fix
2025-06-27 17:00:25 +01:00
ConnorYoh
3444aa6525
Merge pull request #3832 from Stirling-Tools/react-prop-merges
...
React prop merges
2025-06-27 16:20:20 +01:00
Connor Yoh
5786421616
Merge branch 'main' into react-prop-merges
2025-06-27 16:15:11 +01:00
Connor Yoh
0090d9f483
Remove accidental introduction of propriatary folder structure
2025-06-27 16:07:03 +01:00
Reece
42abe83385
File management overhaul
2025-06-27 14:06:16 +01:00
Reece
09758ea2b8
Cache lazy loaded pages in viewer
2025-06-26 13:46:12 +01:00
Balázs Szücs
11e3ccd19f
feat: add Thai language option for stamp feature ( #3825 )
...
# Description of Changes
This pull request adds support for Thai language text stamps in the
`StampController` and updates the corresponding HTML template to include
Thai as an option in the language selection dropdown.
### Thai language support:
*
[`stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java`](diffhunk://#diff-1fc63d07188744082edc3780d43868119bf9876868c8c8db6ce324b57c60284eR184-R186):
Added a case for "thai" in the `addTextStamp` method, specifying the
font file `NotoSansThai-Regular.ttf` for Thai language support.
*
[`stirling-pdf/src/main/resources/templates/misc/stamp.html`](diffhunk://#diff-29cf511e86ebd2b1d4f378e4f0bd301aa5e024e6dc66f93672206c2b1ffa526cR91):
Added a new `<option>` for Thai language ("ไทย") in the dropdown menu
for language selection.
### Preview:

[dummy_stamped.pdf](https://github.com/user-attachments/files/20910418/dummy_stamped.pdf )
---
## Checklist
### General
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)
- [x] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [x] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
2025-06-25 23:24:26 +01:00
Balázs Szücs
2177eff6c4
Added mockTempFileManager to tests in EML-to-PDF mockito to resolve errors ( #3826 )
...
# Description of Changes
Resolving conflict that comes from conflicts between #3797 and #3806
#3797 modified the code:
- The convertEmlToPdf and convertHtmlToPdf methods now require a
TempFileManager tempFileManager argument.
- All code (including tests) that calls these methods must now provide a
valid TempFileManager instance.
After that however, #3806 did not account for these changes,
specifically the changes to the required arguments.
---
## Checklist
### General
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)
- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [x] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
2025-06-25 23:01:12 +01:00
Ludy
06f792aa70
chore: include additional problem reports folder in upload-artifact step ( #3805 )
...
# Description of Changes
---
## Checklist
### General
- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)
- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
2025-06-25 18:54:05 +01:00
Balázs Szücs
212d4d0dcb
feat: add Thai language support and corresponding font for watermarking ( #3819 )
...
# Description of Changes
This pull request adds support for Thai language in the watermark
functionality.
### Backend updates:
*
[`stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java`](diffhunk://#diff-73e8448c42af57bb0549146473b5e7edc063533694813dfda7214e51005a90daR173-R175):
Added a new case for "thai" in the `addTextWatermark` method to use the
`NotoSansThai-Regular.ttf` font for Thai text.
### Frontend updates:
*
[`stirling-pdf/src/main/resources/templates/security/add-watermark.html`](diffhunk://#diff-dc75a6b50ba2a29c6cb17f0cfa65e4ffac88102d5834ea40fc9d9b3b4d00f8f3R41):
Added a new option for Thai language (`ไทย`) in the language dropdown
menu for watermark customization.

### Sample PDF:

[dummy_watermarked.pdf](https://github.com/user-attachments/files/20903700/dummy_watermarked.pdf )
Closes #3810
---
## Checklist
### General
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)
- [x] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [x] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
2025-06-25 18:53:01 +01:00
Ludy
1e17242023
chore: update Docker Compose to v2.37.2 in GitHub Actions workflow ( #3803 )
...
# Description of Changes
- **What was changed**: Updated the Docker Compose version in the GitHub
Actions `build.yml` from `v2.32.4` to `v2.37.2`.
- **Why the change was made**: To benefit from the latest fixes and
internal improvements introduced in `v2.37.2`, including:
- Added support for `use_api_socket`
- Fixed container name output in `images --json`
- Prevented panic on `w` shortcut usage without watch support
- Internal restructuring of `run` logic
- Dependency updates (`compose-go v2.6.5`, `containerd v2.1.2`)
See: https://github.com/docker/compose/releases
---
## Checklist
### General
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)
- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
2025-06-25 18:34:17 +01:00
Balázs Szücs
6461b93131
feat: add JUnit tests for EML to PDF conversion ( #3806 )
...
# Description of Changes
This PR introduces tests for EML-to-PDF feature, but indirectly tests
also HTML-to-PDF as well as Attachments feature.
- Adds JUnit tests for EML-to-PDF conversion, including scenarios with
file attachments, multipart, complex, CSS styled etc.. emails.
- Confirms that adding Angus Mail as a runtime dependency does not
introduce any issues or regressions.
PR is relevant after #3781
---
## Checklist
### General
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)
- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [x] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
2025-06-25 18:33:50 +01:00
Anthony Stirling
bc9c127819
feat:centralise temp-file management & cleanup across app/docker ( #3797 )
...
# Description of Changes
Introduces TempFileManager, registry, and scheduled cleanup service;
aligns all Docker images and runtime scripts to use a dedicated
/tmp/stirling-pdf directory; updates controllers, utilities, and tests
to use the new API; adds configurable system.tempFileManagement section.
Closes #(issue_number)
---
## Checklist
### General
- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)
- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
---------
Co-authored-by: a <a>
2025-06-25 18:32:28 +01:00
ConnorYoh
29916d85b1
Merge pull request #3811 from reecebrowne/Stirling-2.0
...
Stirling 2.0
2025-06-25 16:07:22 +01:00
Dario Ghunney Ware
32aa568196
Add Attachments Feature ( #3781 )
...
# Description of Changes
Added a new feature to add attachments to a PDF document.
### Added:
- `AttachmentController`: Endpoint for adding attachments at
`/add-attachments` with parameters `fileInput` for the PDF and
`attachments` as a list of files to attach
- `AttachmentServiceInterface`
- `AttachmentService`: Handles the logic of adding attachments to the
PDF
- `AttachmentUtils`: to handle setting the catalog viewer preferences in
the viewer
- Add Attachments page
- Tests for new feature
### Changes:
- `EmlToPdf`: Moved setting of viewer preferences to `AttachmentUtils`
- `EndpointConfiguration: Included '/add-attachments'
- Updated language files with attachments copy
- General clean up
Closes #1259
---
## Checklist
### General
- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md )
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md )
(if applicable)
- [x] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md )
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings
### Documentation
- [x] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/ )
(if functionality has heavily changed)
- [x] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags )
(for new translation tags only)
### UI Changes (if applicable)




- [x] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [x] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing )
for more details.
2025-06-24 23:52:17 +01:00
Reece
ffe5b9577b
Page editor fixes and improvements and restructuring
2025-06-24 23:31:21 +01:00
Reece
2f90220b7b
File handling fixes
2025-06-24 20:25:03 +01:00
ConnorYoh
bfc679edc5
Merge pull request #3663 from reecebrowne/Stirling-2.0
...
Stirling 2.0
2025-06-24 15:04:28 +01:00
Reece
27dd11ba8a
Replace old components with moved versions from Stirling-2.0
2025-06-24 12:55:15 +01:00
Reece
a51960b199
Resolve conflicts using files from Stirling-2.0
2025-06-24 12:51:39 +01:00
Reece
16e56e3208
Resolve merge conflicts by using versions from Stirling-2.0
2025-06-24 12:20:31 +01:00
Anthony Stirling
8e8f0492c4
Update repo_devs.json
2025-06-23 23:24:31 +01:00