This latest release contains several improvements and new features most of which from @balazs-szucs, so a huge thanks goes out to them!
Main changes are:
- Crop to have option to correctly remove the text outside crop window
- CBZ to PDF and PDF to CBZ
- PDF to CBR (requires you to manually install rar due to license requirements)
- Extra colour options in both sign and also replace colours tools
Main bug fixes
- Get info correctly checks PDF compliancy
- Merge order by time fixed
Along with these changes were numerous other bug fixes, enhancements and clean-ups please check them out below! (Thanks again to @balazs-szucs!)
Also for those wondering about our V2 progress, The team recently released https://stirling.com/app which is a SaaS version of the soon to be released V2 for selfhosted users in coming weeks.
Please give feedback (Button is in bottom right of SaaS) on what you think and changes that you want before it goes live to you all.
We have some more big improvements coming soon to V2 particularly to the tool menu and multi tool in few days thanks to the feedback we already received (thankyou!)
What's Changed
Enhancements
- feat: custom error handling when calling renderImageWithDPI, controllers to respect global DPI by @balazs-szucs in #4407
- feat(multi-layout): implement form field copying and transformation for multi-page PDF to keep form data by @balazs-szucs in #4314
- feat(replace-and-invert-colour): Add CMYK color space conversion with prepress preset for PDF processing by @balazs-szucs in #4494
- feat: Add RegexPatternUtils for centralized regex management, file naming funcs, UtilityClass annotation by @balazs-szucs in #4218
- feat(cbz-to-pdf,pdf-to-cbz): Converter for CBZ format to and from PDF by @balazs-szucs in #4472
- feat(sign): Add signature color picker and custom signature colors by @balazs-szucs in #4441
- feat(get-info-on-pdf): use PDFBox preflight to validate PDF compliancy level, and parse in compliancy type by @balazs-szucs in #4595
- feat(merge): use metadata for sortByDate by @balazs-szucs in #4461
- feat(cbr-to-pdf,pdf-to-cbr): add PDF to/from CBR conversion with ebook optimization option by @balazs-szucs in #4581
- feat(i18n): add German translations for CBR/CBZ comic conversion tools by @Ludy87 in #4597
- feat(pdf-to-cbr): integrate RAR for CBR output generation by @balazs-szucs in #4626
- feat(crop): Crop remove outside text by @balazs-szucs in #4499
Minor Enhancements
- fix: try-with-resources for Streams interacting with Files to ensure proper resource management by @balazs-szucs in #4404
- performance: Use StringBuilder instead of string concatenation for building strings by @balazs-szucs in #4193
- fix: Update checkbox elements to use Bootstrap classes for consistent styling by @balazs-szucs in #4412
- refactor(core,common,proprietary): Replace Date with Instant/modern Date API alternative for improved time handling by @balazs-szucs in #4497
- refactor: replace size checks with isEmpty(), safely collapse redundant emptiness checking logic, minor code improvements by @balazs-szucs in #4132
- perf: Logging statements to use parameterized messages by @balazs-szucs in #4399
- refactor: replace switch statements with modern switch expressions for better readability by @balazs-szucs in #4095
- refactor: tooltips behavior and tooltips in bookmark editor by @lukasstorck in #4136
- Defaulting JWT settings to
false
by @DarioGii in #4416 - refactor: Replace manual resource handling with try-with-resources by @balazs-szucs in #4593
- fix(scanner-effect): lower default DPI in ScannerEffectRequest by @balazs-szucs in #4565
- fix(replace-and-invert-color): preserve original filename with '-inverted.pdf' suffix for output by @balazs-szucs in #4594
- fix(scale): Throw exceptions for invalid page size instead of returning null in getTargetSize method by @balazs-szucs in #4460
- fix(repair): suppress corrupted PDF error/warning banner on repair page by @balazs-szucs in #4434
- fix(sanitize): fix JavaScript handling, embedded file sanitization by @balazs-szucs in #4652
Docker Updates
- build(deps): bump actions/setup-python from 5.6.0 to 6.0.0 by @dependabot[bot] in #4379
- build(deps): bump step-security/harden-runner from 2.13.0 to 2.13.1 by @dependabot[bot] in #4538
- build(deps): bump docker/login-action from 3.5.0 to 3.6.0 by @dependabot[bot] in #4552
- build(deps): bump gradle/actions from 4.4.2 to 4.4.4 by @dependabot[bot] in #4548
- build(deps): bump sigstore/cosign-installer from 3.9.2 to 3.10.0 by @dependabot[bot] in #4547
- build(deps): bump gradle/actions from 4.4.4 to 5.0.0 by @dependabot[bot] in #4605
Translation Changes
- Update hungarian translation for editTableOfContents strings by @balazs-szucs in #4165
- Update and improve the zh-TW Traditional Chinese translation by @PeterDaveHello in #4400
- Update and improve Croatian (hrvatski) (hr_HR) locale by @PeterDaveHello in #4202
- Translate fr by @miniupnp in #4168
- Spanish translation by @txelu in #4290
- Update messages_it_IT.properties by @albanobattistella in #4398
- Update Hungarian translation by @balazs-szucs in #4401
- Update serbian translation by @dmiljk in #4411
- Update messages_ru_RU.properties by @TheShadowAngel in #4426
- 🌐 Sync Translations + Update README Progress Table by @stirlingbot[bot] in #4465
- 🌐 Sync Translations + Update README Progress Table by @stirlingbot[bot] in #4542
- Update messages_it_IT.properties by @albanobattistella in #4563
- 🌐 Update messages_ru_RU.properties by @TheShadowAngel in #4577
- 🌐 Sync Translations + Update README Progress Table by @stirlingbot[bot] in #4606
- Update Hungarian translations by @balazs-szucs in #4573
- Update Hungarian translations for improved consistency and clarity. by @balazs-szucs in #4623
Development Tools
- fix(ci): 🛡️ mitigate CVE-2025-8869 by enforcing wheels-only pip installs and upgrading pinned dependencies by @Ludy87 in #4598
Other Changes
- fix: normalize path in ApplicationPropertiesLogicTest by @msgilligan in #4477
- build(deps): bump actions/setup-node from 4.4.0 to 5.0.0 by @dependabot[bot] in #4381
- build(deps): bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in #4382
- build(deps): bump actions/stale from 9.1.0 to 10.0.0 by @dependabot[bot] in #4380
- build(deps): bump bouncycastleVersion from 1.81 to 1.82 by @dependabot[bot] in #4474
- build(deps): bump org.postgresql:postgresql from 42.7.7 to 42.7.8 by @dependabot[bot] in #4479
- build(deps): bump org.projectlombok:lombok from 1.18.38 to 1.18.42 by @dependabot[bot] in #4475
- build(deps): bump commonmarkVersion from 0.25.1 to 0.26.0 by @dependabot[bot] in #4447
- build(deps): bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 by @dependabot[bot] in #4534
- build(deps): bump springSecuritySamlVersion from 6.5.3 to 6.5.5 by @dependabot[bot] in #4536
- build(deps): bump actions/dependency-review-action from 4.7.3 to 4.8.0 by @dependabot[bot] in #4541
- build(deps): bump softprops/action-gh-release from 2.3.2 to 2.3.3 by @dependabot[bot] in #4540
- build(deps): bump github/codeql-action from 3.30.0 to 3.30.5 by @dependabot[bot] in #4539
- build(deps): bump actions/github-script from 7.0.1 to 8.0.0 by @dependabot[bot] in #4378
- build(deps): bump org.springdoc:springdoc-openapi-starter-webmvc-ui from 2.8.12 to 2.8.13 by @dependabot[bot] in #4421
- build(deps): bump jakarta.mail:jakarta.mail-api from 2.1.4 to 2.1.5 by @dependabot[bot] in #4553
- build(deps): bump io.swagger.core.v3:swagger-core-jakarta from 2.2.36 to 2.2.38 by @dependabot[bot] in #4551
- build(deps): bump org.springframework.boot:spring-boot-dependencies from 3.5.5 to 3.5.6 by @dependabot[bot] in #4550
- build(deps): bump org.eclipse.angus:angus-mail from 2.0.4 to 2.0.5 by @dependabot[bot] in #4549
- build(deps): bump org.springframework.boot from 3.5.5 to 3.5.6 by @dependabot[bot] in #4545
- build(deps): bump ossf/scorecard-action from 2.4.2 to 2.4.3 by @dependabot[bot] in #4604
- build(deps): bump softprops/action-gh-release from 2.3.3 to 2.3.4 by @dependabot[bot] in #4602
- build(deps): bump github/codeql-action from 3.30.5 to 3.30.6 by @dependabot[bot] in #4601
- build(deps): bump actions/stale from 10.0.0 to 10.1.0 by @dependabot[bot] in #4603
- build(deps): bump ch.qos.logback:logback-core from 1.5.18 to 1.5.19 by @dependabot[bot] in #4561
- build(deps): bump io.micrometer:micrometer-core from 1.15.3 to 1.15.4 by @dependabot[bot] in #4420
- Update build.gradle by @Frooodle in #4648
- docs: update and reorganize README by @balazs-szucs in #4608
New Contributors
- @msgilligan made their first contribution in #4477
- @txelu made their first contribution in #4290
Full Changelog: v1.3.2...v1.4.0