Skip to content

Update module github.com/pdfcpu/pdfcpu to v0.13.0 - #2500

Merged
golanglemonade merged 1 commit into
mainfrom
renovate/github.com-pdfcpu-pdfcpu-0.x
Jun 17, 2026
Merged

Update module github.com/pdfcpu/pdfcpu to v0.13.0#2500
golanglemonade merged 1 commit into
mainfrom
renovate/github.com-pdfcpu-pdfcpu-0.x

Conversation

@renovate

@renovate renovate Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
github.com/pdfcpu/pdfcpu v0.12.1v0.13.0 age confidence

Release Notes

pdfcpu/pdfcpu (github.com/pdfcpu/pdfcpu)

v0.13.0

Compare Source

A Release Featuring CLI Pipelines and Safer Defaults

Starting with this release, pdfcpu improves CLI usability with broader stdin/stdout pipeline support and stricter overwrite handling.

Check out the refreshed documentation at https://pdfcpu.io

Many commands now support - for stdin/stdout, making pdfcpu easier to use in shell pipelines. Explicit output files and non-empty output directories are no longer overwritten implicitly. Use the new global --force flag when overwriting is intentional.

Example:

pdfcpu optimize - out.pdf < in.pdf

or:

cat in.pdf | pdfcpu optimize - - > out.pdf

or a pipeline:

aws s3 cp s3://acme-contracts/master.pdf - \
      | pdfcpu optimize - - \
      | aws s3 cp - s3://acme-contracts/optimized/master.pdf

CLI Improvements

This release adds and refines several user-facing CLI features:

  • Broader stdin/stdout support using -
  • Global --force flag for explicit overwrite handling
  • annotations list --json
  • form list --json
  • certificates list --json
  • merge --bookmark-mode wrap|preserve
  • Improved version command behavior
  • Clarified help text around signature validation scope and trust boundaries

The new overwrite behavior is intentionally stricter. Existing scripts that relied on implicit overwrites may need to add --force.


Merge Bookmarks

The merge command now supports bookmark handling modes:

pdfcpu merge --bookmark-mode wrap out.pdf in1.pdf in2.pdf

Supported modes:

  • wrap
  • preserve

The default is wrap.

This release also improves bookmark tree preservation and handling of bookmark destination collisions.


JSON Output

JSON output is now available for selected listing commands:

pdfcpu annotations list --json in.pdf
pdfcpu form list --json in.pdf
pdfcpu certificates list --json

form list --json also supports multi-file form export JSON.


Certificate Trust Store Packaging

Standard builds now start with an empty trusted certificate directory.

Embedded EUTL certificate bundles are only included when building with:

-tags pdfcpu_eutl

certificates reset now resets the certificate directory to the build defaults.

This keeps standard builds smaller and avoids implying a bundled trust store unless it was explicitly selected at build time.


Experimental Windows 7 Build

An experimental Windows 7 x64 build is available in the release assets:

pdfcpu_0.13.0_Windows_x86_64_win7_experimental.zip

This build uses a patched Go toolchain and is not part of the regular supported release matrix. Feedback from Windows 7 SP1 x64 users is welcome (at #​870), especially the output of:

cmd
ver
pdfcpu.exe version
pdfcpu.exe validate test.pdf

Robustness & Safer Processing

This release adds configurable parser and resource limits for:

  • stream bytes
  • decoded bytes
  • image pixels and bytes
  • object counts
  • xref entries
  • recursion depth

The corresponding limits are also part of the configuration. Users of older version will be prompted by the CLI to reset their configuration.

Additional cycle and depth checks were added for page trees, form fields, name trees, and object graph traversal.

Stream parsing and filter decoding have also been hardened against oversized, malformed, and overflowing inputs.

Very large or malformed PDFs that were previously attempted may now be rejected earlier.


Fixes and Improvements

This release includes targeted fixes and compatibility improvements for:

  • annotation geometry during resize, including Rect and QuadPoints
  • merge bookmark handling
  • form filling with user fonts
  • removing document properties and associated catalog XMP metadata
  • relaxed validation for selected malformed JavaScript action and structure-tree object-reference cases
  • booklet page count and content-buffer handling
  • FlateDecode predictor and EOF handling
  • output path handling in extraction, fonts, forms, split/cut, and attachment-related workflows
  • watermarks, stamps, validation, fonts, properties, and related command behavior

Dependencies were updated, including go-runewidth, x/crypto, x/image, and x/text.


Signature Validation Notes

Now usage, help text and docs describe the current signature validation scope and trust boundaries more clearly.

This release does not claim complete legal, eIDAS, LTV, or long-term trust validation.


Development

Behind the scenes, this release includes command plumbing refactoring in pkg/cli, updated tests around command dispatch, and an experimental Windows 7 build workflow.


Thanks

Everybody for testing, reporting issues, and feeding back real-world PDFs.
Your bug reports and edge cases continue to make pdfcpu more robust and useful.
Shoutouts to @​harish for spending time on submitting a PR.


Changelog


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a team as a code owner June 17, 2026 04:05
@renovate
renovate Bot requested review from adelowo, golanglemonade and matoszz June 17, 2026 04:05
@renovate

renovate Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated

Details:

Package Change
github.com/mattn/go-runewidth v0.0.23 -> v0.0.24

golanglemonade
golanglemonade previously approved these changes Jun 17, 2026
@golanglemonade
golanglemonade enabled auto-merge (squash) June 17, 2026 04:21
@renovate
renovate Bot force-pushed the renovate/github.com-pdfcpu-pdfcpu-0.x branch from 04fede8 to 63cb185 Compare June 17, 2026 04:28
@sonarqubecloud

Copy link
Copy Markdown

@golanglemonade
golanglemonade merged commit a6f7c13 into main Jun 17, 2026
20 checks passed
@golanglemonade
golanglemonade deleted the renovate/github.com-pdfcpu-pdfcpu-0.x branch June 17, 2026 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant