PDFtk PDF Creator & Producer
Understanding PDF metadata that shows PDFtk as the Creator or Producer — learn how the PDF Toolkit manipulates PDF files and modifies metadata using command-line operations.
📄 About This PDF Metadata
When you examine a PDF file's properties and see pdftk or itext-paulo listed as the Producer, it indicates that the document was processed or modified using PDFtk (PDF Toolkit). Unlike most PDF tools, PDFtk primarily modifies existing PDFs rather than creating them from scratch.
Sample PDF Metadata After PDFtk Processing:
Title: Merged Documents
Author: Jane Doe
Creator: (original creator preserved)
Producer: itext-paulo-155 (itextpdf.sf.net-lowagie.com)
ModDate: D:20250127154500
PDF Version: 1.6
PDFtk is unique because it's primarily a PDF manipulation tool rather than a PDF generator. When PDFtk processes a PDF (merge, split, rotate, etc.), it updates the Producer field to reflect the iText library version it uses internally. The Creator field typically preserves the original application that created the source PDF.
PDF Creator
Usually preserved from the original PDF. Shows the application that originally created the document (Word, LibreOffice, etc.).
PDF Producer
Shows itext-paulo-155 or similar iText library identifier. Can also be modified using PDFtk's update_info command.
🔧 What is PDFtk?
PDFtk (PDF Toolkit) is a cross-platform command-line utility for manipulating PDF documents. It was developed by Sid Steward of PDF Labs and first released on March 7, 2004. PDFtk can merge, split, rotate, watermark, encrypt, decrypt, and fill PDF forms — all while preserving the original content and structure.
Project Information
| First Release: | March 7, 2004 (v0.93) |
| Developer: | Sid Steward / PDF Labs |
| License: | GPL (Server), Proprietary (Pro) |
| Written in: | C++ with iText (Java) |
| Website: | pdflabs.com |
Version History
| v1.00: | August 14, 2004 (forms) |
| v2.00: | May 22, 2013 (AES encryption) |
| v2.02: | July 24, 2013 (drop_xmp) |
| Platforms: | Windows, macOS, Linux |
| Based on: | iText Java library |
PDFtk Product Versions:
PDFtk Server
Free, open-source command-line tool (GPL)
PDFtk Free
Freeware GUI for Windows (merge/split)
PDFtk Pro
Paid GUI with all features + CLI
💡 About pdftk-java
pdftk-java is a pure Java port of PDFtk developed by Marc Vinyals starting in 2017. It was created to address compatibility issues after the GNU Compiler for Java (GCJ) was deprecated. pdftk-java serves as a drop-in replacement for the original PDFtk on modern Linux distributions.
⚙️ How PDFtk Modifies PDFs
Unlike most PDF tools that create new PDFs from scratch, PDFtk is designed to manipulate existing PDF files. It uses the iText Java library internally to handle PDF structures and operations.
PDFtk Core Capabilities:
Document Operations
- Merge: Combine multiple PDFs into one
- Split: Extract pages or burst into singles
- Rotate: Rotate pages by 90°, 180°, 270°
- Shuffle: Collate pages from multiple PDFs
Metadata & Security
- dump_data: Export metadata to text file
- update_info: Modify PDF metadata
- Encrypt: Add password protection
- Decrypt: Remove password protection
Sid Steward, the creator of PDFtk, describes it as the PDF equivalent of an "electronic staple remover, hole punch, binder, secret decoder ring, and X-ray glasses." The tool is particularly popular for:
- Server-side batch processing of PDF documents
- Scripting and automation workflows
- Form filling with FDF/XFDF data
- Adding watermarks, stamps, and backgrounds
📤 How to Use PDFtk
PDFtk is primarily a command-line tool. Here are the most common operations:
Basic Command Syntax:
# General syntax
pdftk <input_files> <operation> [options] output <output_file>
Merge Multiple PDFs:
# Combine doc1.pdf and doc2.pdf into combined.pdf
pdftk doc1.pdf doc2.pdf cat output combined.pdf
Split PDF into Single Pages:
# Split input.pdf into individual pages
pdftk input.pdf burst
Extract Specific Pages:
# Extract pages 1-5 and 10 from input.pdf
pdftk input.pdf cat 1-5 10 output selected.pdf
View and Export Metadata:
# Export metadata and bookmarks to a text file
pdftk input.pdf dump_data output metadata.txt
# View metadata output format:
InfoBegin
InfoKey: Title
InfoValue: My Document Title
InfoBegin
InfoKey: Author
InfoValue: John Doe
Update PDF Metadata:
# Apply metadata from text file to PDF
pdftk input.pdf update_info metadata.txt output output.pdf
🔧 PDFtk Operations
PDFtk supports a wide range of PDF manipulation operations:
Document Operations
- cat: Concatenate (merge) PDFs
- shuffle: Collate pages from multiple PDFs
- burst: Split into individual pages
- rotate: Rotate pages (90, 180, 270 degrees)
- background: Add PDF as background layer
- stamp: Add PDF as overlay/watermark
Form Operations
- fill_form: Fill forms with FDF/XFDF data
- generate_fdf: Create FDF from PDF form
- dump_data_fields: List all form fields
- flatten: Merge form data into PDF
Metadata Operations
- dump_data: Export metadata to text file
- dump_data_utf8: Export with UTF-8 encoding
- update_info: Update metadata from file
- update_info_utf8: Update with UTF-8 input
- drop_xmp: Remove XMP metadata stream
Security Operations
- encrypt_40bit: 40-bit RC4 encryption
- encrypt_128bit: 128-bit RC4 encryption
- user_pw: Set user (open) password
- owner_pw: Set owner (permissions) password
- allow: Set permissions (print, copy, etc.)
⚠️ Metadata Editing Limitation
PDFtk can only modify the standard Document Information Dictionary (DID) fields: Title, Author, Subject, Keywords, Creator, and Producer. It does not support editing XMP metadata (the more modern XML-based format). For XMP editing, use tools like ExifTool or QPDF.
📱 PDFtk Versions
PDFtk comes in three different versions to suit different needs:
PDFtk Product Comparison:
| Feature | PDFtk Server | PDFtk Free | PDFtk Pro |
|---|---|---|---|
| Interface | Command Line | GUI + CLI | GUI + CLI |
| License | GPL (Open Source) | Freeware | Commercial |
| Platform | Windows, macOS, Linux | Windows only | Windows, macOS |
| Merge PDFs | ✅ | ✅ | ✅ |
| Split PDFs | ✅ | ✅ | ✅ |
| Rotate Pages | ✅ | ❌ | ✅ |
| Watermark/Stamp | ✅ | ❌ | ✅ |
| Fill Forms | ✅ | ❌ | ✅ |
| Encryption | ✅ | ❌ | ✅ |
| Edit Metadata | ✅ | ❌ | ✅ |
| Price | Free | Free | $3.99+ |
PDFtk Server
Original command-line tool for scripting and server-side batch processing
pdftk-java
Pure Java port for modern Linux (Marc Vinyals, 2017)
iText Library
Underlying PDF library (released Feb 14, 2000)
🔍 Understanding PDF Metadata
PDFtk uses a simple text-based format for reading and writing PDF metadata:
| Metadata Field | PDFtk Format | Description |
|---|---|---|
| Title | InfoKey: Title |
Document title |
| Author | InfoKey: Author |
Document author name |
| Subject | InfoKey: Subject |
Document subject/description |
| Keywords | InfoKey: Keywords |
Searchable keywords |
| Creator | InfoKey: Creator |
Original creating application |
| Producer | InfoKey: Producer |
PDF generation library (iText) |
| CreationDate | InfoKey: CreationDate |
Original creation date |
| ModDate | InfoKey: ModDate |
Last modification date |
Example Metadata File (metadata.txt):
InfoBegin
InfoKey: Title
InfoValue: Annual Report 2025
InfoBegin
InfoKey: Author
InfoValue: Jane Smith
InfoBegin
InfoKey: Subject
InfoValue: Company financial report
InfoBegin
InfoKey: Keywords
InfoValue: finance, annual, report, 2025
Usage: pdftk input.pdf update_info metadata.txt output output.pdf
🛠️ Troubleshooting
Common issues when using PDFtk:
PDFtk Shows "itext-paulo" as Producer
Cause: This is normal behavior. PDFtk uses the iText Java library internally, which sets the Producer field to its library identifier (e.g., itext-paulo-155).
Solution: If you need to change the Producer field, create a metadata file with your desired value and use pdftk input.pdf update_info metadata.txt output output.pdf. Note that this adds another processing step.
Cannot Install PDFtk on Modern Linux
Cause: The original PDFtk depends on GCJ (GNU Compiler for Java) which has been deprecated and removed from most modern Linux distributions.
Solution: Use pdftk-java instead, which is a pure Java port that works with standard Java runtimes. Install it with your package manager (e.g., apt install pdftk-java on Debian/Ubuntu) or download from the pdftk-java GitHub repository.
Metadata Not Updating as Expected
Cause: PDFtk only modifies the Document Information Dictionary (DID), not XMP metadata. Many modern PDFs have metadata in both locations.
Solution: Use the drop_xmp option to remove XMP metadata: pdftk input.pdf drop_xmp output output.pdf. For XMP editing, use ExifTool or QPDF instead.
Password-Protected PDF Cannot Be Processed
Cause: Most PDFtk operations require the owner password for encrypted PDFs.
Solution: Provide the password using the input_pw option: pdftk secured.pdf input_pw PASSWORD cat output unsecured.pdf. If you don't have the password, you cannot process the PDF.
Non-ASCII Characters Display Incorrectly
Cause: The standard PDFtk metadata functions expect ASCII or XML-encoded characters.
Solution: Use the UTF-8 variants: dump_data_utf8 to export and update_info_utf8 to import metadata with non-ASCII characters (available in PDFtk 2.0+).
❓ Frequently Asked Questions
When a PDF shows "itext-paulo" or similar as the Producer, it means the PDF was processed using PDFtk (PDF Toolkit). PDFtk uses the iText Java library internally for PDF operations. The "paulo" in the name refers to Paulo Soares, one of the original iText developers. This typically indicates the PDF was merged, split, rotated, or had its metadata modified using PDFtk.
PDFtk Server (the command-line tool) is completely free and open-source under the GPL license. PDFtk Free is freeware for Windows that provides basic GUI functionality. PDFtk Pro is a paid commercial product starting at $3.99 with advanced GUI features. For scripting and server-side use, PDFtk Server is free forever.
PDFtk was first released on March 7, 2004, as version 0.93. It was developed by Sid Steward, author of the O'Reilly book "PDF Hacks." Version 1.00 with form-filling capabilities was released on August 14, 2004. Major milestone version 2.00 with AES encryption support was released on May 22, 2013.
The original PDFtk is written in C++ and uses a GCJ-compiled version of the iText library. pdftk-java is a pure Java port developed by Marc Vinyals starting in 2017. It was created because GCJ was deprecated, causing installation issues on modern Linux distributions. pdftk-java serves as a drop-in replacement with nearly identical functionality and passes comprehensive compatibility tests.
No, PDFtk only supports editing the Document Information Dictionary (DID) — the older metadata format with fields like Title, Author, Subject, and Keywords. It cannot edit XMP metadata (the modern XML-based format). You can use drop_xmp to remove XMP metadata entirely, but for XMP editing, use tools like ExifTool or QPDF.
PDFtk was created by Sid Steward, who operates PDF Labs. Steward is also the author of the O'Reilly book "PDF Hacks" (2004). He created PDFtk to provide a free, scriptable alternative to Adobe Acrobat for common PDF manipulation tasks. The tool quickly became popular for server-side processing and automation workflows.
The original C++ version of PDFtk (PDFtk Server) has not had major updates since 2013 (version 2.02). However, PDF Labs continues to support commercial PDFtk products. The pdftk-java port is actively maintained and receives updates. For modern systems, pdftk-java is the recommended choice. Alternatives like QPDF are also recommended for users needing active development.
🛠️ Related Tools
PDF Metadata Viewer
Free tool to view PDF metadata including Creator, Producer, and version information.
View PDF Metadata →📝 Summary: PDFtk PDF Metadata
- PDFtk first released March 7, 2004
- Producer shows itext-paulo or similar
- Creator usually preserved from original PDF
- Use dump_data and update_info for metadata
- PDFtk Server is free and GPL licensed
- Developed by Sid Steward / PDF Labs
- Built on iText Java library
- Merge, split, rotate, encrypt PDFs
- Only edits DID, not XMP metadata
- pdftk-java for modern Linux systems