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.

⌨️ Command Line 🆓 GPL Licensed 🔧 PDF Manipulation

📄 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
InterfaceCommand LineGUI + CLIGUI + CLI
LicenseGPL (Open Source)FreewareCommercial
PlatformWindows, macOS, LinuxWindows onlyWindows, macOS
Merge PDFs
Split PDFs
Rotate Pages
Watermark/Stamp
Fill Forms
Encryption
Edit Metadata
PriceFreeFree$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

Viewer

PDF Metadata Viewer

Free tool to view PDF metadata including Creator, Producer, and version information.

View PDF Metadata →
Converter

PDF Converter

Convert PDF files to Excel, Word, and other formats.

Convert PDF Files →

📝 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