Stirling PDF
PDF application that lets you edit PDFs on any device, anywhere
Alternative to: adobe acrobat, smallpdf, ilovepdf
v1.3.0
2025-09-05Been a few weeks since our last release, we have been making amazing progress on our future UI refresh and will have a demo to show everyone soon.
Major changes:
- Auto redact to support text removal on PDFs without the need for image conversion (Huge thanks to @balazs-szucs)
- PDF to Image to support shwoing annotations, highlights etc
- Add font color option for page numbers
- PFX alias for PKCS12
- Split PDF enhanced with better file number padding
- Several settings/database enhancements
- Many optimisations and refactors to improve stability and performance
- Several dependency updates
As always, thanks to all the open source community and in particular @Ludy87 for a massive 28 of these PRs in this release
What’s Changed
Enhancements
- feat: Auto-redact to support text removal on True PDFs/non-custom encoded PDFs, JUnit tests for RedactController, and TextFinder by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/3936
- feat(audit): introduce structured Audit API with export, stats, and cleanup endpoints by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4217
- feat(common,core,proprietary): remove unused injections, enhance type safety, and improve test mocks by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4213
- feat(ssrf): enhance private IP detection and IPv6 handling by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4191
- feat(database,Jwt): relocate backups and Jwt-keys to
config/backupand add Enterprise cleanup endpoints by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4225 - feat: add annotation option to PDF to image by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/4365
- feat(misc): Add font color option for page numbers; improve alignment & robustness by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4334
- feat: Add Lombok @Getter and @Setter annotations to reduce boilerplate code in multiple classes by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/4321
- feat(convert): PDF conversion with unoconvert fallback soffice by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4316
- feat(database): make backup schedule configurable via system keys by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4251
- feat(security): add PFX alias for PKCS12; accept .crt/.cer/.der certs & .key keys; add certificate-signing tests by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4297
- feat(common): add
ChecksumUtilsfor MD5/SHA*/CRC32/Adler32 with Base64 and multi-algorithm support by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4261
Minor Enhancements
- JWT Authentication by @DarioGii in https://github.com/Stirling-Tools/Stirling-PDF/pull/3921
- 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4175
- Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4184
- fix(h2): refine SQL condition check for custom database flag by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4216
- refactor(tests): move & expand TextFinder/RedactController tests; fix TextFinder empty search-term handling; update token filtering API by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4264
- Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4247
- fix(downloader): reset progress bar after completion by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4192
- fix(config): recreate settings.yml if missing or below minimal size threshold by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4166
- PdfContainer: zero-pad numeric suffix in nameAndArchiveFiles by @adityaruplaha in https://github.com/Stirling-Tools/Stirling-PDF/pull/4265
- Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4278
- refactor(ssrf): default enum MEDIUM prevents OFF=false by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4280
- 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4185
- fix(api): prevent
MultipartFilebinding errors inStampControllerby @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4331 - test(common): add dedicated unit tests for FileInfo and InputStreamTemplateResource by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4140
- Replace uses of
Arrays.asList()with either List.of() or Collections.singletonList() by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/4219 - Update 3rd Party Licenses by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4385
- 🤖 format everything with pre-commit by stirlingbot by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4375
- fix(security): prevent NPE on logout when JWT service is unavailable by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4390
- refactor: standardize MIME handling via Spring
MediaTypeby @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4389 - perf(core): Stream responses and unify temp file lifecycle across controllers by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4330
Docker Updates
- build(deps): bump gradle/actions from 4.4.1 to 4.4.2 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4177
- build(deps): bump actions/checkout from 4.2.2 to 4.3.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4180
- build(gradle): include all subprojects in license report generation by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4170
- deps: Pin Python dev dependencies and lock hashes to remediate security alert 302 by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4173
- build(deps): bump actions/checkout from 4.3.0 to 5.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4194
- build(deps): bump actions/setup-java from 4.7.1 to 5.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4269
Translation Changes
- Update Hungarian translation for new update related strings by @balazs-szucs in https://github.com/Stirling-Tools/Stirling-PDF/pull/4152
- :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4174
- Update messages_it_IT.properties by @albanobattistella in https://github.com/Stirling-Tools/Stirling-PDF/pull/4183
- Update messages_tr_TR.properties by @turkaysoftware in https://github.com/Stirling-Tools/Stirling-PDF/pull/4274
- fix(i18n): standardize
{filename}placeholder inaddPageNumbers.customNumberDescacross all translations by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4204 - Update and improve the zh-TW Traditional Chinese translation by @PeterDaveHello in https://github.com/Stirling-Tools/Stirling-PDF/pull/4164
- :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4277
- :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4374
- Update messages_it_IT.properties by @albanobattistella in https://github.com/Stirling-Tools/Stirling-PDF/pull/4285
- Update messages_tr_TR.properties by @turkaysoftware in https://github.com/Stirling-Tools/Stirling-PDF/pull/4384
Other Changes
- :globe_with_meridians: Sync Translations + Update README Progress Table by @stirlingbot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4159
- chore(labeler): add new ‘v2’ label and expand matching rules by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4172
- build(deps): bump github/codeql-action from 3.29.7 to 3.29.8 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4178
- build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4179
- build(deps): bump actions/ai-inference from 1.2.7 to 1.2.8 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4181
- build(deps): bump edu.sc.seis.launch4j from 3.0.7 to 4.0.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4182
- build(deps): bump actions/dependency-review-action from 4.7.1 to 4.7.2 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4230
- build(deps): bump jwtVersion from 0.12.6 to 0.12.7 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4229
- build(deps): bump github/codeql-action from 3.29.8 to 3.29.10 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4231
- refactor(build): centralize security disable condition in shared Gradle property by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4209
- chore(ci): include
testing/**in file change detection fordocker-compose-testsworkflow by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4206 - build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.9 to 2.8.11 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4273
- build(deps): bump org.springframework.boot from 3.5.4 to 3.5.5 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4272
- build(deps): bump github/codeql-action from 3.29.10 to 3.29.11 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4271
- build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.5.4 to 3.5.5 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4268
- build(deps): bump springSecuritySamlVersion from 6.5.2 to 6.5.3 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4227
- build(deps): bump io.swagger.core.v3:swagger-core-jakarta from 2.2.35 to 2.2.36 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4226
- build(deps): bump io.micrometer:micrometer-core from 1.15.2 to 1.15.3 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4190
- ci(workflow): simplify PR deployment by removing redundant repo/ref lookup by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4266
- build(gradle): replace deprecated
outputFilewithdestinationFileinwriteVersiontask by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4167 - build(deps): bump jwtVersion from 0.12.7 to 0.13.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4270
- build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.11 to 2.8.12 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4356
- build(deps): bump github/codeql-action from 3.29.11 to 3.30.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4355
- build(deps): bump actions/dependency-review-action from 4.7.2 to 4.7.3 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4353
- build(deps): bump org.sonarqube from 6.2.0.5505 to 6.3.1.5724 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4352
- build(deps): bump com.bucket4j:bucket4j_jdk17-core from 8.14.0 to 8.15.0 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4279
- build(deps): bump org.panteleyev.jpackageplugin from 1.7.3 to 1.7.5 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4347
- build(deps): bump jakarta.mail:jakarta.mail-api from 2.1.3 to 2.1.4 by @dependabot[bot] in https://github.com/Stirling-Tools/Stirling-PDF/pull/4351
- fix(ci:testdriver): conditionally run frontend tests based on file changes by @Ludy87 in https://github.com/Stirling-Tools/Stirling-PDF/pull/4064
- Bump project version from 1.2.0 to 1.3.0 by @Frooodle in https://github.com/Stirling-Tools/Stirling-PDF/pull/4383
New Contributors
- @turkaysoftware made their first contribution in https://github.com/Stirling-Tools/Stirling-PDF/pull/4274
Full Changelog: https://github.com/Stirling-Tools/Stirling-PDF/compare/v1.2.0…v1.3.0