Skip to content
dialegein

pdftk-java

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

Jobs Merge Protect Edit

Since 2018

Operated by Marc Vinyals

Visit pdftk-java

Opens the vendor's own site.

Jobs covered

Open a task to see exactly what the vendor documentation supports.

Merge Browse all merge tools

merging and collating PDF documents, and splitting pages

Protect Browse all protect tools

protecting PDFs with pdftk-java, where the manual documents encrypt_40bit, encrypt_128bit and encrypt_aes128, AES-128 as the default when a user or owner password is supplied, owner_pw and user_pw, allow permission flags, and decryption of password-protected input. The scope records password/permission encryption, the weaker RC4 options and decryption, and makes no digital-signature, certificate-trust, DRM, redaction or hosted-processing claim; the original PDFtk and third-party library licences remain separate from the operation

Edit Browse all edit tools

making documented structure and assembly edits with pdftk-java, where the manual documents rotate, generate_fdf, fill_form with FDF/XFDF data, flatten, background/multibackground, stamp/multistamp, dump_data variants, update_info, attach_files and unpack_files, plus compress/uncompress stream filters for source editing. Page-range assembly, cat, shuffle and burst remain in the already-scoped merge job.

The scope records rotation, form fill/flatten, overlays, metadata/bookmark/page-data updates, attachments, unpacking and source stream filters, and makes no body-text editing, OCR, Office conversion, repair, redaction, digital signing or certificate-trust claim

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 Marc Vinyals' Java port of the original PDFtk command-line toolkit, keeping the pdftk command syntax. The current tag and release is v3.3.3, dated 22 September 2022, with no newer public release; the program's --version output identifies itself as 'pdftk port to java 3.3.3' and carries copyright notices for Marc Vinyals 2017-2023 and Steward and Lee, LLC 2003-2013.

It runs as a Java command-line tool, assembling and splitting documents by page range, rotating pages, collating scans, filling and flattening AcroForm forms from FDF/XFDF data, applying background or stamp watermarks, reporting and updating metadata/bookmarks/page data, attaching files, adding or removing password encryption with permission flags, and applying compress/uncompress stream filters for source editing. It is not a general embeddable Java library: the README recommends iText or OpenPDF for programmatic use.

The project code is GPL-2.0-or-later, while the bundled modified iText, Apache Batik, BouncyCastle and other components retain their own licences; the original PDFtk licence note contains a commercial-redistribution condition.

Best for

Scripts, cron jobs and administrators who need pdftk's page-assembly, form-filling and encryption operations and want a Java build that runs on a JVM instead of the original C++ binary.

Worth knowing

The current public tag/release is v3.3.3, dated 22 September 2022, and there is no newer release. The program's version string is the pdftk-java port version 3.3.3; it also prints the original PDFtk copyright for Steward and Lee, LLC, but it does not expose a separate original-PDFtk program version.

The project is a Java command-line tool, not a general embeddable Java library: the README recommends iText or OpenPDF if you need a library to call from Java, and the pdftk syntax and CLI are the product surface. It requires a JRE for the standalone jar; package-manager builds and an experimental native image exist, and distributions older than 3.0.4 are explicitly discouraged.

The project is GPL-2.0-or-later, but the bundled modified iText, Apache Batik, BouncyCastle and other third-party components retain their own licences. The bundled original PDFtk licence note says PDFtk is not public domain, that third-party libraries have their own terms, and that commercial redistribution as part of another product requires a commercial licence unless the distributor's software is GPL-compatible; ordinary local use does not require that commercial licence.

There is no OCR, format conversion, body-text editing, repair, redaction, digital signature or certificate trust. Encryption covers 40-bit and 128-bit RC4 and AES-128 with owner/user passwords and permission flags; it is not DRM or signature support.

The compress and uncompress switches are stream filters for hand-editing PDF source, not a general size-reduction or image-downsampling tool. The project has no API and does not claim hosted processing.

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 for the pdftk-java code, per the source headers.

GPL-2.0-or-later for the pdftk-java code, per the source headers. The Java port is by Marc Vinyals and is a port of PDFtk, originally copyright 2003-2013 Steward and Lee, LLC.

The bundled license_gpl_pdftk folder carries third-party terms for the modified iText library, Apache Batik, BouncyCastle and other components, plus the original PDFtk licence note stating that PDFtk is not public domain, that third-party libraries have their own terms, and that commercial redistribution as part of another product needs a commercial licence unless the distributor's software is GPL-compatible. Ordinary local use is free and open source; the third-party/commercial-redistribution boundary is recorded separately.

Redaction
No redaction feature
Programmatic access
Command line
Last availability check
Responded in 431 ms 21 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 16 October 2026

    Still present verbatim in the current FAQ, but the full answer qualifies it: it applies to existing pdftk users and command-line/script use, while the same answer says a robust Java programmatic library should use iText or OpenPDF rather than pdftk-java. The claim is retained with that CLI/non-library qualifier; it is not a claim that pdftk-java is a general Java library or that every pdftk behaviour is identical.

    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 16 October 2026 and 16 October 2026.
Website availability.
The vendor's site was last checked on 21 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: https://gitlab.com/pdftk-java/pdftk (README, pdftk.1, CHANGELOG, LICENSE, license_gpl_pdftk/readme.txt, license_gpl_pdftk/third_party, build.gradle, source headers and tags v3.3.3); all read 2026-10-16.