pdftk-java
Java port of pdftk for scripted merging, splitting, form filling and encryption.
Operated by Marc Vinyals
Opens the vendor's own site.
Jobs covered
Open a task to see exactly what the vendor documentation supports.
Protect
Browse all protect toolsprotecting 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 toolsmaking 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.
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.
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.
Related reading
- Which PDF tools keep your file on your machine - what we count as processing on your own device.
- Open source PDF tools, and what their licences require - what open source does and does not tell you.