![dependabot[bot]](/assets/img/avatar_default.png)
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.5 to 42.7.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pgjdbc/pgjdbc/releases">org.postgresql:postgresql's releases</a>.</em></p> <blockquote> <h2>v42.7.6</h2> <h2>Changes</h2> <ul> <li>Prepare release notes for release 42_7_6 (new format) <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3628">#3628</a>)</li> <li>fix: isValid incorrectly called execute, instead of executeWithFlags fixes Issue <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3630">#3630</a> <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3631">#3631</a>)</li> <li>add override <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3629">#3629</a>)</li> <li>add the ability to turn off automatic LSN flush <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3403">#3403</a>)</li> <li>test: add tests with reWriteBatchedInserts=true <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3616">#3616</a>)</li> <li>test: add CI executions with adaptive_fetch=true by default <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3615">#3615</a>)</li> <li>test: simplify TestUtil.openDB, add tests with various assumeMinServerVersion values <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3614">#3614</a>)</li> <li>Deprecate group startup parms <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3613">#3613</a>)</li> <li>Add back application name setting <a href="https://github.com/joejensen"><code>@joejensen</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3509">#3509</a>)</li> <li>Copr: Use Java 21 as the build dependency <a href="https://github.com/mkoncek"><code>@mkoncek</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3607">#3607</a>)</li> <li>fix indentation of return child to allow built pass in Checkstyle's CIs <a href="https://github.com/mohitsatr"><code>@mohitsatr</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3611">#3611</a>)</li> <li>Set column name explicitely when using <code>current_database()</code> in queries <a href="https://github.com/kneth"><code>@kneth</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3526">#3526</a>)</li> <li>add PgMessageType and use static variables for protocol literals <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3609">#3609</a>)</li> <li>Handle protocol 3.2 and wider cancel keys. <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3592">#3592</a>)</li> <li>refactor empty resultset to use empty result set if the catalog is not correct <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3588">#3588</a>)</li> <li>Use query to find the current catalog instead of relying on the database in the connection URL or connection properties as this could be different if connected through a pooler or proxy <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3565">#3565</a>)</li> <li>ci: add Java 24 tests <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3580">#3580</a>)</li> <li>docs: Relabel 42.7.4 as past version as it is no longer the latest <a href="https://github.com/sehrope"><code>@sehrope</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3586">#3586</a>)</li> <li>test: remove stale logging message from SslTest <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3584">#3584</a>)</li> <li>chore: appply the latest byte-buddy version for tests so we support the latest Java versions <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3583">#3583</a>)</li> <li>fix: make PgConnection#abort compatible with Java 24 <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3582">#3582</a>)</li> <li>chore(deps): update plugin com.github.burrunan.s3-build-cache to v1.8.5 <a href="https://github.com/renovate-bot"><code>@renovate-bot</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3573">#3573</a>)</li> <li>Fix JavadocTagContinuationIndentation in AfterBeforeParameterResolver <a href="https://github.com/Anmol202005"><code>@Anmol202005</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3566">#3566</a>)</li> <li>Revert "use in row values instead of union all (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3510">#3510</a>)" <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3524">#3524</a>)</li> <li>use in row values instead of union all <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3510">#3510</a>)</li> <li>feat: enhanced DatabaseMetadata.getIndexInfo() method, added index comment as REMARKS property <a href="https://github.com/raminorujov"><code>@raminorujov</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3513">#3513</a>)</li> <li>Nit: correct message in main.yml test action <a href="https://github.com/ecki"><code>@ecki</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3503">#3503</a>)</li> <li>chore: use import instead of require to support modern NodeJS <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3502">#3502</a>)</li> <li>chore: use PostgreSQL 17 rather than 17rc1 for CI tests <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3501">#3501</a>)</li> <li>chore: add ErrorProne verification to catch bugs ealier <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3493">#3493</a>)</li> <li>fix: ArrayIndexOutOfBounds when write big object into GSS enabled connection, make GSSInputStream robust in face of streams that produce incomplete reads <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3500">#3500</a>)</li> <li>refactor: factor out duplicated .getBytes() when converting date/time to Date/Time/Timestamp <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3497">#3497</a>)</li> <li>chore: exclude Oracle Java 17 from CI tests <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3499">#3499</a>)</li> <li>chore: remove unused Travis CI configuration <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3498">#3498</a>)</li> <li>Undeprecate sslfactoryarg connection property <a href="https://github.com/sehrope"><code>@sehrope</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3496">#3496</a>)</li> <li>fix:Fix sending extra_float_digits <a href="https://github.com/davecramer"><code>@davecramer</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3491">#3491</a>)</li> </ul> <h2>🐛 Bug Fixes</h2> <ul> <li>fix: EOFException on PreparedStatement#toString with unset bytea parameter since 42.7.4 <a href="https://github.com/MrEasy"><code>@MrEasy</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3369">#3369</a>)</li> </ul> <h2>🧰 Maintenance</h2> <ul> <li>chore: use Java 21 for building pgjdbc by default <a href="https://github.com/vlsi"><code>@vlsi</code></a> (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3612">#3612</a>)</li> </ul> <h2>⬆️ Dependencies</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md">org.postgresql:postgresql's changelog</a>.</em></p> <blockquote> <h2>[42.7.6]</h2> <h4>Features</h4> <ul> <li>fix: Enhanced DatabaseMetadata.getIndexInfo() method, added index comment as REMARKS property [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3513">#3513</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3513">pgjdbc/pgjdbc#3513</a>)</li> </ul> <h3>Performance Improvements</h3> <ul> <li>performance: Improve ResultSetMetadata.fetchFieldMetaData by using IN row values instead of UNION ALL for improved query performance (later reverted) [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3510">#3510</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3510">pgjdbc/pgjdbc#3510</a>)</li> <li>feat:Use a single simple query for all startup parameters, so groupStartupParameters is no longer needed [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3613">#3613</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3613">pgjdbc/pgjdbc#3613</a>)</li> <li></li> </ul> <h2>Bug Fixes</h2> <h3>Protocol & Connection Handling</h3> <ul> <li>fix: Send extra_float_digits=3 for PostgreSQL 12+ as well [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3491">#3491</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3491">pgjdbc/pgjdbc#3491</a>)</li> <li>fix: Fixed handling of protocol 3.2 and wider cancel keys [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3592">#3592</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3592">pgjdbc/pgjdbc#3592</a>)</li> <li>fix: Made PgConnection#abort compatible with Java 24 [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3582">#3582</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3582">pgjdbc/pgjdbc#3582</a>)</li> <li>fix: Fixed ArrayIndexOutOfBounds when writing big objects into GSS enabled connections [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3500">#3500</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3500">pgjdbc/pgjdbc#3500</a>)</li> <li>fix: Added back application name setting [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3509">#3509</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3509">pgjdbc/pgjdbc#3509</a>)</li> </ul> <h3>Metadata & Catalog Handling</h3> <ul> <li>fix: Set column name explicitly when using current_database() in queries [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3526">#3526</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3526">pgjdbc/pgjdbc#3526</a>)</li> <li>fix: Use query to find the current catalog instead of relying on the database in the connection URL [pull <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3565">#3565</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3565">pgjdbc/pgjdbc#3565</a>)</li> <li>fix: Refactored empty resultset to use empty result set if the catalog is not correct [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3588">#3588</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3588">pgjdbc/pgjdbc#3588</a>)</li> </ul> <h3>API Improvements</h3> <ul> <li>fix: Undeprecated Fastpath API and fixed deprecation warnings [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3493">#3493</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3493">pgjdbc/pgjdbc#3493</a>)</li> <li>fix: Undeprecated sslfactoryarg [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3496">#3496</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3496">pgjdbc/pgjdbc#3496</a>)</li> <li>fix: Added PgMessageType and used static variables for protocol literals [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3609">#3609</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3609">pgjdbc/pgjdbc#3609</a>)</li> <li>fix: Add the ability to turn off automatic LSN flush [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3403">#3403</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3403">pgjdbc/pgjdbc#3403</a>)</li> <li>fix: isValid incorrectly called execute, instead of executeWithFlags [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3631">#3631</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3631">pgjdbc/pgjdbc#3631</a>). Fixes [Issue <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3630">#3630</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3630">pgjdbc/pgjdbc#3630</a>)</li> <li>fix: EOFException on PreparedStatement#toString with unset bytea parameter since 42.7.4 <a href="0a88ea425e
">Commit 0a88ea4</a>. Fixes [Issue <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3365">#3365</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3365">pgjdbc/pgjdbc#3365</a>)</li> </ul> <h2>Infrastructure & Build Improvements</h2> <h3>Java Support</h3> <ul> <li>update: Updated to use Java 21 for building pgjdbc by default [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3612">#3612</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3612">pgjdbc/pgjdbc#3612</a>)</li> <li>update: Updated Java 21 as the build dependency for copr [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3607">#3607</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3607">pgjdbc/pgjdbc#3607</a>)</li> <li>update: Updated latest JDK to version 24 [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3580">#3580</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3580">pgjdbc/pgjdbc#3580</a>)</li> <li>update: Applied the latest byte-buddy version for tests to support the latest Java versions [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3583">#3583</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3583">pgjdbc/pgjdbc#3583</a>)</li> </ul> <h3>Testing & Quality</h3> <ul> <li>test: Added ErrorProne verification to detect bugs earlier [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3493">#3493</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3493">pgjdbc/pgjdbc#3493</a>)</li> <li>test: Simplified TestUtil.openDB, added tests with various assumeMinServerVersion values [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3624">#3624</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3614">pgjdbc/pgjdbc#3614</a>)</li> <li>test: Updated to use PostgreSQL 17 rather than 17rc1 for CI tests [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3501">#3501</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3501">pgjdbc/pgjdbc#3501</a>)</li> <li>test: Removed stale logging message from SslTest [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3584">#3584</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3584">pgjdbc/pgjdbc#3584</a>)</li> <li>test: Added CI executions with adaptive_fetch=true by default for performance testing [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3615">#3615</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3615">pgjdbc/pgjdbc#3615</a>)</li> <li>test: Added tests with reWriteBatchedInserts=true [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3616">#3616</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3616">pgjdbc/pgjdbc#3616</a>)</li> </ul> <h3>Code Quality</h3> <ul> <li>doc: Fixed javadoc warnings [PR <a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3493">#3493</a>](<a href="https://redirect.github.com/pgjdbc/pgjdbc/pull/3493">pgjdbc/pgjdbc#3493</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="689708f96d
"><code>689708f</code></a> Prepare release notes for release 42_7_6 (new format) (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3628">#3628</a>)</li> <li><a href="0a88ea425e
"><code>0a88ea4</code></a> fix: EOFException on PreparedStatement#toString with unset bytea parameter si...</li> <li><a href="2de9b943c6
"><code>2de9b94</code></a> fix: make sure Connection.isValid correctly uses executeWithFlags fixes Issu...</li> <li><a href="d9e2087459
"><code>d9e2087</code></a> add override (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3629">#3629</a>)</li> <li><a href="665b27b865
"><code>665b27b</code></a> add the ability to turn off automatic LSN flush (<a href="https://redirect.github.com/pgjdbc/pgjdbc/issues/3403">#3403</a>)</li> <li><a href="253c68243c
"><code>253c682</code></a> chore(deps): update burrunan/gradle-cache-action action to v3</li> <li><a href="2d1ae0cbd4
"><code>2d1ae0c</code></a> chore(deps): update plugin com.gradle.develocity to v4</li> <li><a href="baeb89321b
"><code>baeb893</code></a> fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite....</li> <li><a href="e24d599952
"><code>e24d599</code></a> fix(deps): update dependency com.google.errorprone:error_prone_core to v2.38.0</li> <li><a href="1617c68d51
"><code>1617c68</code></a> fix(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.p...</li> <li>Additional commits viewable in <a href="https://github.com/pgjdbc/pgjdbc/compare/REL42.7.5...REL42.7.6">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] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Stirling-PDF
Stirling-PDF is a robust, locally hosted web-based PDF manipulation tool using Docker. It enables you to carry out various operations on PDF files, including splitting, merging, converting, reorganizing, adding images, rotating, compressing, and more. This locally hosted web application has evolved to encompass a comprehensive set of features, addressing all your PDF requirements.
All files and PDFs exist either exclusively on the client side, reside in server memory only during task execution, or temporarily reside in a file solely for the execution of the task. Any file downloaded by the user will have been deleted from the server by that point.
Homepage: https://stirlingpdf.com
All documentation available at https://docs.stirlingpdf.com/
Features
- 50+ PDF Operations
- Parallel file processing and downloads
- Dark mode support
- Custom download options
- Custom 'Pipelines' to run multiple features in a automated queue
- API for integration with external scripts
- Optional Login and Authentication support (see here for documentation)
- Database Backup and Import (see here for documentation)
- Enterprise features like SSO see here
PDF Features
Page Operations
- View and modify PDFs - View multi-page PDFs with custom viewing, sorting, and searching. Plus, on-page edit features like annotating, drawing, and adding text and images. (Using PDF.js with Joxit and Liberation fonts)
- Full interactive GUI for merging/splitting/rotating/moving PDFs and their pages
- Merge multiple PDFs into a single resultant file
- Split PDFs into multiple files at specified page numbers or extract all pages as individual files
- Reorganize PDF pages into different orders
- Rotate PDFs in 90-degree increments
- Remove pages
- Multi-page layout (format PDFs into a multi-paged page)
- Scale page contents size by set percentage
- Adjust contrast
- Crop PDF
- Auto-split PDF (with physically scanned page dividers)
- Extract page(s)
- Convert PDF to a single page
- Overlay PDFs on top of each other
- PDF to a single page
- Split PDF by sections
Conversion Operations
- Convert PDFs to and from images
- Convert any common file to PDF (using LibreOffice)
- Convert PDF to Word/PowerPoint/others (using LibreOffice)
- Convert HTML to PDF
- Convert PDF to XML
- Convert PDF to CSV
- URL to PDF
- Markdown to PDF
Security & Permissions
- Add and remove passwords
- Change/set PDF permissions
- Add watermark(s)
- Certify/sign PDFs
- Sanitize PDFs
- Auto-redact text
Other Operations
- Add/generate/write signatures
- Split by Size or PDF
- Repair PDFs
- Detect and remove blank pages
- Compare two PDFs and show differences in text
- Add images to PDFs
- Compress PDFs to decrease their filesize (using qpdf)
- Extract images from PDF
- Remove images from PDF
- Extract images from scans
- Remove annotations
- Add page numbers
- Auto-rename files by detecting PDF header text
- OCR on PDF (using Tesseract OCR)
- PDF/A conversion (using LibreOffice)
- Edit metadata
- Flatten PDFs
- Get all information on a PDF to view or export as JSON
- Show/detect embedded JavaScript
📖 Get Started
Visit our comprehensive documentation at docs.stirlingpdf.com for:
- Installation guides for all platforms
- Configuration options
- Feature documentation
- API reference
- Security setup
- Enterprise features
Supported Languages
Stirling-PDF currently supports 40 languages!
Stirling PDF Enterprise
Stirling PDF offers an Enterprise edition of its software. This is the same great software but with added features, support and comforts. Check out our Enterprise docs
🤝 Looking to contribute?
Join our community: