Balázs Szücs and GitHub
b661eb8ff0
refactor: Replace manual resource handling with try-with-resources ( #4593 )
...
# Description of Changes
Explanation on try-with-resource:
> Many resources in Java need be closed after they have been used. If
they are not, the garbage collector cannot reclaim the resources'
memory, and they are still considered to be in use by the operating
system. Such resources are considered to be leaked, which can lead to
performance issues.
>
> Java 7 introduced the try-with-resources statement, which guarantees
that the resource in question will be closed.
>
> try (InputStream input = Files.newInputStream(path)) {
> // "input" will be closed after the execution of this block
> }
>
> This syntax is safer than the traditional method using try, catch, and
finally and hence should be preferred.
https://rules.sonarsource.com/java/tag/java8/RSPEC-2093/
<!--
Please provide a summary of the changes, including:
- What was changed
- Why the change was made
- Any challenges encountered
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/devGuide/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/devGuide/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/devGuide/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/devGuide/DeveloperGuide.md#6-testing )
for more details.
---------
Signed-off-by: Balázs Szücs <[email protected] >
2025-10-04 10:49:39 +01:00
Balázs Szücs and GitHub
575854952a
feat(get-info-on-pdf): use PDFBox preflight to validate PDF compliancy level, and parse in compliancy type ( #4595 )
...
# Description of Changes
- Refactored methods for parsing and extracting PDF/A conformance levels
from XMP metadata.
- Implemented PDF/A validation using Preflight from Apache PDFBox.
- Enhanced PDF information generation to include PDF/A conformance level
and validation results.
- Updated compliance checks and JSON output to reflect new PDF/A
capabilities.
### Test files:
[lorem-ipsum_PDFA1b.pdf](https://github.com/user-attachments/files/22687689/lorem-ipsum_PDFA1b.pdf )
[lorem-ipsum_PDFA_2b.pdf](https://github.com/user-attachments/files/22687692/lorem-ipsum_PDFA_2b.pdf )
[lorem-ipsum_PD⁄A3a.pdf](https://github.com/user-attachments/files/22687693/lorem-ipsum_PD.A3a.pdf )
### New results:
<img width="699" height="257" alt="image"
src="https://github.com/user-attachments/assets/b8cb5510-2908-4e08-97f6-d5799e0e1be7 "
/>
<img width="699" height="257" alt="image"
src="https://github.com/user-attachments/assets/d7af3731-ad19-4524-b1c1-32f47776e6af "
/>
<img width="699" height="257" alt="image"
src="https://github.com/user-attachments/assets/6e48e65b-2ebc-402a-a222-bfdbf783e45d "
/>
I also validated with online tools. Should be good now!
I was also thinking moving this to GeneralUtils; it may be useful for
PDF/A converter in the future, or for other features. Not sure yet, for
now I think this is good for now.
Closes #4568
<!--
Please provide a summary of the changes, including:
- What was changed
- Why the change was made
- Any challenges encountered
Closes #(issue_number)
-->
---
## 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/devGuide/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/devGuide/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/devGuide/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/devGuide/DeveloperGuide.md#6-testing )
for more details.
---------
Signed-off-by: Balázs Szücs <[email protected] >
2025-10-04 10:22:29 +01:00
Dario Ghunney Ware and GitHub
dabc52ef73
Defaulting JWT settings to false ( #4416 )
...
Defaulting the configuration settings for Stirling PDF's JWT to false to
avoid any unexpected issues
2025-09-30 12:02:11 +01:00
927bf3d004
build(deps): bump org.eclipse.angus:angus-mail from 2.0.4 to 2.0.5 ( #4549 )
...
[//]: # (dependabot-start)
⚠️ **Dependabot is rebasing this PR** ⚠️
Rebasing might not happen immediately, so don't worry if this takes some
time.
Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.
---
[//]: # (dependabot-end)
Bumps
[org.eclipse.angus:angus-mail](https://github.com/eclipse-ee4j/angus-mail )
from 2.0.4 to 2.0.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/a7a4a37844717d3967418b1640456e49153a7e7c "><code>a7a4a37</code></a>
Prepare release org.eclipse.angus:all:2.0.5</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/a7d6745aaaa831c9c2140eac2ee5b8a7d275895e "><code>a7d6745</code></a>
activation api 2.1.4, mail api 2.1.5, angus activation 2.0.3</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/c93dde0d24ff8ad2d4cac38e9bd3da46a7f06e30 "><code>c93dde0</code></a>
Merge pull request <a
href="https://redirect.github.com/eclipse-ee4j/angus-mail/issues/182 ">#182</a>
from eclipse-ee4j/2.0.4-RELEASE</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/ddcc8e35198bc1f51511f84956b1d7610aad9175 "><code>ddcc8e3</code></a>
From-Address not parsed correctly <a
href="https://redirect.github.com/eclipse-ee4j/angus-mail/issues/161 ">#161</a>
(<a
href="https://redirect.github.com/eclipse-ee4j/angus-mail/issues/174 ">#174</a>)</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/c4e72d2a91c14f2b4d8bbaf5e6b747f1cc0de913 "><code>c4e72d2</code></a>
Update github action versions</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/f1606338a49bb2588c0f6ecef4a2e6e18a1208bf "><code>f160633</code></a>
OAuth2.md: POP3 works with O365 with towlines</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/acbb015dfbadb1ae6fd3e682490ab442786a6dd2 "><code>acbb015</code></a>
Update changes files, it was wrong (<a
href="https://redirect.github.com/eclipse-ee4j/angus-mail/issues/177 ">#177</a>)</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/b96c2c32a44e73933f877d4cd085b66027d44c2d "><code>b96c2c3</code></a>
Rename resource files so JakartaMail and JavaMail can co-exist (<a
href="https://redirect.github.com/eclipse-ee4j/angus-mail/issues/171 ">#171</a>)</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/8d4a8ce3d5cf0f7ac21fb042e8495b76b6b4462a "><code>8d4a8ce</code></a>
Update CHANGES.txt</li>
<li><a
href="https://github.com/eclipse-ee4j/angus-mail/commit/dbd22ec2c2bb7272e9b56ca367bee82a9015ea31 "><code>dbd22ec</code></a>
Remove this-escape compiler warnings <a
href="https://redirect.github.com/eclipse-ee4j/angus-mail/issues/141 ">#141</a>
(<a
href="https://redirect.github.com/eclipse-ee4j/angus-mail/issues/142 ">#142</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eclipse-ee4j/angus-mail/compare/2.0.4...2.0.5 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 11:41:37 +01:00
8884e65c29
build(deps): bump io.swagger.core.v3:swagger-core-jakarta from 2.2.36 to 2.2.38 ( #4551 )
...
[//]: # (dependabot-start)
⚠️ **Dependabot is rebasing this PR** ⚠️
Rebasing might not happen immediately, so don't worry if this takes some
time.
Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.
---
[//]: # (dependabot-end)
Bumps io.swagger.core.v3:swagger-core-jakarta from 2.2.36 to 2.2.38.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 11:38:51 +01:00
10263ffc7f
build(deps): bump jakarta.mail:jakarta.mail-api from 2.1.4 to 2.1.5 ( #4553 )
...
Bumps
[jakarta.mail:jakarta.mail-api](https://github.com/jakartaee/mail-api )
from 2.1.4 to 2.1.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jakartaee/mail-api/commit/e1873219fe587d5c2b5bb4196e859ae71319a45c "><code>e187321</code></a>
Prepare release jakarta.mail:jakarta.mail-api:2.1.5</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/ef7483e4b3850c97b0d69325c28bdf1024c5a9de "><code>ef7483e</code></a>
Revert "Multipart performs blocking call in every instantiation <a
href="https://redirect.github.com/jakartaee/mail-api/issues/699 ">#699</a>
(<a
href="https://redirect.github.com/jakartaee/mail-api/issues/716 ">#716</a>)"</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/abe990f2d45def0067db9469aae6e26e4ffb27f2 "><code>abe990f</code></a>
Reviews changes</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/a10a1733c9ed8aa6208d88731dcdc3393f372e5b "><code>a10a173</code></a>
Improve MimeMessage UTF8 handling</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/7a53112b91b5ed7b2f3c1263c692c9604ff51db7 "><code>7a53112</code></a>
Improve MimeMessage UTF8 handling</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/17365200c01432b713937ec898fc2fa0cb26af0e "><code>1736520</code></a>
Drop references to the Reference implementation</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/f2e6da34c38f02cceb2e8c4c64d016149e7a11c0 "><code>f2e6da3</code></a>
Bump nokogiri from 1.16.5 to 1.18.9 in /www</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/5488a7ce643e9266433f992c860c072e17a8566f "><code>5488a7c</code></a>
<a
href="https://redirect.github.com/jakartaee/mail-api/issues/708 ">#708</a>
Add missing javadoc for supporting ServiceLoader mechanism (<a
href="https://redirect.github.com/jakartaee/mail-api/issues/726 ">#726</a>)</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/ccbe84bdb57953e15f0f4a2f31af86345587aa63 "><code>ccbe84b</code></a>
Bump webrick from 1.8.1 to 1.8.2 in /www</li>
<li><a
href="https://github.com/jakartaee/mail-api/commit/34f8e9b1618f4d9acdbef908c4ddf7ca0fe3d115 "><code>34f8e9b</code></a>
ISSUE-721 - add full Markdown for URLs since Jekyll action doesn't
autolink t...</li>
<li>Additional commits viewable in <a
href="https://github.com/jakartaee/mail-api/compare/2.1.4...2.1.5 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-30 11:37:50 +01:00
4af3637c06
🌐 Sync Translations + Update README Progress Table ( #4542 )
...
### Description of Changes
This Pull Request was automatically generated to synchronize updates to
translation files and documentation. Below are the details of the
changes made:
#### **1. Synchronization of Translation Files**
- Updated translation files (`messages_*.properties`) to reflect changes
in the reference file `messages_en_GB.properties`.
- Ensured consistency and synchronization across all supported language
files.
- Highlighted any missing or incomplete translations.
#### **2. Update README.md**
- Generated the translation progress table in `README.md`.
- Added a summary of the current translation status for all supported
languages.
- Included up-to-date statistics on translation coverage.
#### **Why these changes are necessary**
- Keeps translation files aligned with the latest reference updates.
- Ensures the documentation reflects the current translation progress.
---
Auto-generated by [create-pull-request][1].
[1]: https://github.com/peter-evans/create-pull-request
---------
Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-09-29 22:11:31 +01:00
94c05e90e8
refactor: tooltips behavior and tooltips in bookmark editor ( #4136 )
...
Co-authored-by: Reece Browne <[email protected] >
2025-09-29 15:37:36 +01:00
69b2701fbf
feat(sign): Add signature color picker and custom signature colors ( #4441 )
...
# Description of Changes
Added sign custom colour as per #4413
### Example doc
[lorem-ipsum_signed.pdf](https://github.com/user-attachments/files/22310651/lorem-ipsum_signed.pdf )
### UI/Picture
<img width="771" height="553" alt="image"
src="https://github.com/user-attachments/assets/3a715723-d281-4175-8a33-c68cb53e2b47 "
/>
<img width="514" height="445" alt="image"
src="https://github.com/user-attachments/assets/c928fbb2-63db-4f44-bc15-9b556af7b3a5 "
/>
<img width="514" height="445" alt="image"
src="https://github.com/user-attachments/assets/ea31f2f2-9790-4166-9d33-69771546858d "
/>
Closes #4413
<!--
Please provide a summary of the changes, including:
- What was changed
- Why the change was made
- Any challenges encountered
Closes #(issue_number)
-->
---
## 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/devGuide/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/devGuide/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/devGuide/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/devGuide/DeveloperGuide.md#6-testing )
for more details.
---------
Signed-off-by: Balázs Szücs <[email protected] >
Co-authored-by: Anthony Stirling <[email protected] >
2025-09-29 14:46:26 +01:00
Balázs Szücs and GitHub
51aa03b256
feat(cbz-to-pdf,pdf-to-cbz): Converter for CBZ format to and from PDF ( #4472 )
2025-09-28 21:41:50 +01:00
413cd0c697
refactor: replace switch statements with modern switch expressions for better readability ( #4095 )
...
Co-authored-by: Copilot <[email protected] >
Co-authored-by: Anthony Stirling <[email protected] >
2025-09-28 21:40:23 +01:00
d01b853335
🌐 Sync Translations + Update README Progress Table ( #4465 )
...
Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-09-28 21:31:14 +01:00
d9c0223703
build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.12 to 2.8.13 ( #4421 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-28 21:23:10 +01:00
Balázs Szücs and GitHub
e44d5f3714
perf: Logging statements to use parameterized messages ( #4399 )
2025-09-28 21:17:58 +01:00
b950484bfc
build(deps): bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 ( #4534 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-28 20:53:09 +01:00
Balázs Szücs and GitHub
ae1db0dd13
refactor: replace size checks with isEmpty(), safely collapse redundant emptiness checking logic, minor code improvements ( #4132 )
2025-09-28 20:51:40 +01:00
Angel and GitHub
b7036bd284
Update messages_ru_RU.properties ( #4426 )
2025-09-28 16:57:50 +01:00
045f4cc591
feat: Add RegexPatternUtils for centralized regex management, file naming funcs, UtilityClass annotation ( #4218 )
...
Co-authored-by: Copilot <[email protected] >
Co-authored-by: Anthony Stirling <[email protected] >
2025-09-28 16:56:35 +01:00
Balázs Szücs and GitHub
133e6d3de6
refactor(core,common,proprietary): Replace Date with Instant/modern Date API alternative for improved time handling ( #4497 )
2025-09-28 16:41:20 +01:00
Balázs Szücs and GitHub
07392ed25e
feat(replace-and-invert-colour): Add CMYK color space conversion with prepress preset for PDF processing ( #4494 )
2025-09-28 16:39:20 +01:00
16576c1789
build(deps): bump org.postgresql:postgresql from 42.7.7 to 42.7.8 ( #4479 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-28 16:36:30 +01:00
591a70f9b0
build(deps): bump bouncycastleVersion from 1.81 to 1.82 ( #4474 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-28 16:35:24 +01:00
bddc6bf5d1
Update serbian translation ( #4411 )
...
Co-authored-by: root <[email protected] >
2025-09-28 16:30:30 +01:00
Balázs Szücs and GitHub
e2733e34b4
Update Hungarian translation ( #4401 )
2025-09-28 16:30:21 +01:00
albanobattistella and GitHub
58909340db
Update messages_it_IT.properties ( #4398 )
2025-09-28 16:29:55 +01:00
18ad38a8da
Spanish translation ( #4290 )
...
Co-authored-by: Anthony Stirling <[email protected] >
2025-09-28 16:28:16 +01:00
Thomas BERNARD and GitHub
ae2cfb6312
Translate fr ( #4168 )
2025-09-28 16:15:31 +01:00
Balázs Szücs and GitHub
ef7030d5a9
feat(multi-layout): implement form field copying and transformation for multi-page PDF to keep form data ( #4314 )
2025-09-25 21:26:11 +01:00
Sean Gilligan and GitHub
93fb62047a
fix: normalize path in ApplicationPropertiesLogicTest ( #4477 )
...
This fixes a failing unit test on macOS.
`ApplicationPropertiesLogicTest.tempFileManagement_defaults_and_overrides()`
has 4 asserts that will fail with this error on macOS:
```
org.opentest4j.AssertionFailedError: expected: </var/folders/6d/12xt4b4m8xjf3t0059_w18bh0000gn/T/stirling-pdf> but was: </var/folders/6d/12xt4b4m8xjf3t0059_w18bh0000gn/T//stirling-pdf>
at app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at app//org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at app//org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
at app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
at app//stirling.software.common.model.ApplicationPropertiesLogicTest.tempFileManagement_defaults_and_overrides(ApplicationPropertiesLogicTest.java:40)
at [email protected] /java.lang.reflect.Method.invoke(Method.java:565)
at [email protected] /java.util.ArrayList.forEach(ArrayList.java:1604)
at [email protected] /java.util.ArrayList.forEach(ArrayList.java:1604)
```
Note the double `/` in the actual path here: `/T//stirling-pdf`.
# Description of Changes
The fix creates a lambda:
```
Function<String, String> normalize = s ->Paths.get(s).normalize().toString();
```
and applies it in all 4 broken tests.
## 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/devGuide/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/devGuide/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/devGuide/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/devGuide/DeveloperGuide.md#6-testing )
for more details.
2025-09-22 21:51:07 +02:00
Balázs Szücs and GitHub
798fc257aa
fix: Update checkbox elements to use Bootstrap classes for consistent styling ( #4412 )
2025-09-19 08:31:44 +01:00
Peter Dave Hello and GitHub
a35bd09b5e
Update and improve Croatian (hrvatski) (hr_HR) locale ( #4202 )
2025-09-18 13:44:03 +01:00
Peter Dave Hello and GitHub
8eb03c44c3
Update and improve the zh-TW Traditional Chinese translation ( #4400 )
2025-09-18 13:43:48 +01:00
Balázs Szücs and GitHub
c684a51cf9
feat: custom error handling when calling renderImageWithDPI, controllers to respect global DPI ( #4407 )
2025-09-18 13:43:21 +01:00
Balázs Szücs and GitHub
a438a15105
Update hungarian translation for editTableOfContents strings ( #4165 )
2025-09-06 20:27:19 +01:00
Balázs Szücs and GitHub
8192b1a44f
performance: Use StringBuilder instead of string concatenation for building strings ( #4193 )
2025-09-06 20:27:11 +01:00
Balázs Szücs and GitHub
47bce86ae2
fix: try-with-resources for Streams interacting with Files to ensure proper resource management ( #4404 )
...
# Description of Changes
The Javadoc recommends wrapping Files.list(), Files.walk(),
Files.find(), and Files.lines() in try-with-resources so the stream’s
close() is called as soon as the terminal operation completes.
This is because when Stream interact with files, Java can ONLY close the
Stream during garbage-collection finalization, which is not guaranteed
to run promptly or at all before the JVM exits, creating a memory leak.
Direct quote:
> Streams have a
[BaseStream.close()](https://docs.oracle.com/javase/8/docs/api/java/util/stream/BaseStream.html#close-- )
method and implement
[AutoCloseable](https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html ),
but nearly all stream instances do not actually need to be closed after
use. Generally, only streams whose source is an IO channel (such as
those returned by [Files.lines(Path,
Charset)](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#lines-java.nio.file.Path-java.nio.charset.Charset- ))
will require closing. Most streams are backed by collections, arrays, or
generating functions, which require no special resource management. (If
a stream does require closing, it can be declared as a resource in a
try-with-resources statement.)
> A DirectoryStream is opened upon creation and is closed by invoking
the close method. Closing a directory stream releases any resources
associated with the stream. Failure to close the stream may result in a
resource leak. The try-with-resources statement provides a useful
construct to ensure that the stream is closed:
Sources:
https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/file/DirectoryStream.html
https://stackoverflow.com/questions/79078272/using-try-with-resources-for-a-java-files-walk-stream-created-in-a-separate-meth
https://stackoverflow.com/questions/36990053/resource-leak-in-files-listpath-dir-when-stream-is-not-explicitly-closed
<!--
Please provide a summary of the changes, including:
- What was changed
- Why the change was made
- Any challenges encountered
Closes #(issue_number)
-->
---
## 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/devGuide/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/devGuide/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/devGuide/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/devGuide/DeveloperGuide.md#6-testing )
for more details.
---------
Signed-off-by: Balázs Szücs <[email protected] >
2025-09-06 09:00:17 +01:00
5e72dce0de
login_fix ( #4402 )
...
Co-authored-by: Copilot <[email protected] >
2025-09-05 19:42:47 +01:00
830b346945
🌐 Sync Translations + Update README Progress Table ( #4386 )
...
Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-09-05 13:24:55 +01:00
Ludy and GitHub
e5da63554e
fix: add missing MediaType import in SplitPdfBySectionsController ( #4393 )
2025-09-05 12:31:52 +01:00
Ludy and GitHub
9b3e2c29a5
perf(core): Stream responses and unify temp file lifecycle across controllers ( #4330 )
2025-09-05 11:27:28 +01:00
Ludy and GitHub
9a39aff19f
refactor: standardize MIME handling via Spring MediaType ( #4389 )
2025-09-05 11:08:24 +01:00
Ludy and GitHub
f14955a019
fix(security): prevent NPE on logout when JWT service is unavailable ( #4390 )
2025-09-05 10:59:24 +01:00
dde6cc2d49
🤖 format everything with pre-commit by stirlingbot ( #4375 )
...
Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-09-04 23:46:20 +01:00
5617740db9
Update 3rd Party Licenses ( #4385 )
...
Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-09-04 23:44:42 +01:00
Eray Türkay and GitHub
7f4071204e
Update messages_tr_TR.properties ( #4384 )
2025-09-04 23:44:34 +01:00
Ludy and GitHub
cb7471024b
feat(common): add ChecksumUtils for MD5/SHA*/CRC32/Adler32 with Base64 and multi-algorithm support ( #4261 )
2025-09-04 15:38:28 +01:00
Balázs Szücs and GitHub
74870615df
Replace uses of Arrays.asList() with either List.of() or Collections.singletonList() ( #4219 )
2025-09-04 15:30:45 +01:00
Ludy and GitHub
02d096d622
feat(security): add PFX alias for PKCS12; accept .crt/.cer/.der certs & .key keys; add certificate-signing tests ( #4297 )
2025-09-04 15:30:32 +01:00
Ludy and GitHub
0776ecc96b
test(common): add dedicated unit tests for FileInfo and InputStreamTemplateResource ( #4140 )
2025-09-04 15:10:35 +01:00
Ludy and GitHub
8113728d3d
feat(database): make backup schedule configurable via system keys ( #4251 )
2025-09-04 15:02:31 +01:00