Skip to content
dialegein

pdftk-java

Java port of pdftk for scripted merging, splitting, form filling and encryption.

Jobs Merge Protect Edit

Since 2018

Where your files are processed

No server involved

Local command-line program that reads and writes files on the invoking machine. No account and no service.

Architectural rather than a vendor claim: pdftk-java is a local command-line program that reads input files and writes output files on the invoking machine. There is no vendor service, account or upload step.

What it does

pdftk-java is a Java re-implementation of the original pdftk command-line PDF toolkit, deliberately keeping the same command syntax. It assembles and splits documents by page range, rotates pages, collates scans, fills and flattens AcroForm forms from FDF or XFDF data, applies background or stamp watermarks, reports and updates metadata, bookmarks and page metrics, attaches files, and adds or removes password encryption with permission flags. It assembles pages and forms rather than editing content.

Best for: Scripts, cron jobs and administrators who need pdftk's page-assembly, form-filling and encryption operations and want a maintained build that runs on any JVM instead of a C++ binary.

Worth knowing: Command line only, and the README itself recommends iText or OpenPDF if you want a library to call from Java. Its compress and uncompress switches are stream filters meant for hand-editing PDF source, so they will not meaningfully shrink a scanned PDF, and it does no OCR or format conversion. The newest release dates from 2022.

Details, and where each comes from

Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.

Versions covered
Windows · macOS · Linux · Self-hosted
Website
gitlab.com
Requires an account
No
Watermark on the free tier
No
Maximum file size
Not verified
Batch processing
Yes
Data residency
Self-hosted
Open source
Yes
Self-hostable
Yes
Licence
GPL-2.0-or-later
Redaction
No redaction feature
Programmatic access
Command line
Last availability check
Responded in 451 ms 16 October 2026

Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.

What the redaction verdict rests on

From the vendor's own documentation, read 22 September 2026. Not tested by us.

What that does not establish: The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist — it may be undocumented, or on a page the reading did not reach — but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty.

https://gitlab.com/pdftk-java/pdftk

What the vendor says

Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded — not that we tested the behaviour, unless the note says we did.

  • “If you are already using pdftk, then pdftk-java should be a seamless replacement.”

    Checked by us — the source says this Read 22 September 2026

    Confirmed verbatim: the sentence is an answer in the project's FAQ. The rest of that answer is the part a reader should have, because it bounds the claim — for occasional command-line use pdftk-java "should do the job", but "if you want a robust library to call from a Java program (or a similar language), then it it probably better to use a proper library, for instance the iText library that pdftk-java uses internally or its more permissively licensed fork OpenPDF". So the project recommends against itself for programmatic use, names two alternatives, and mentions that one is more permissively licensed than the other — with a doubled word of its own that is preserved here.

    Standing: Re-read: the text is unchanged, but the page publishes values that move

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the text a browser renders
    SHA-256
    a2686c01e03fb4284eb1408db6861c29a5389d1c10a575aa4b7af93c6340f772

    How we checked: Re-verified verbatim on 2026-09-22: https://gitlab.com/pdftk-java/pdftk re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-gitlab-com-pdftk-java-pdftk-af25be3a.txt.

    What this hash proves, and what it does not

Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked — it is not a judgement about anyone.

Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.

Visit pdftk-java Report a problem

Related reading

How this record was put together

Editorial review.
No editor has signed this record off. That is not the same as nothing having been checked, and the lines below say what has.
Source reading.
1 claim taken from the vendor's own pages, read between 22 September 2026 and 22 September 2026.
Website availability.
The vendor's site was last checked on 16 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: gitlab.com/pdftk-java/pdftk project page, README, manual page and CHANGELOG. Licence from the project page.