Ghostscript PDF Creator & Producer

Understanding PDF metadata that shows Ghostscript as the Creator or Producer — learn how Ghostscript interprets PostScript and creates PDF files using the pdfwrite device.

⌨️ Command Line 📜 PostScript 🆓 AGPL Licensed

📄 About This PDF Metadata

When you examine a PDF file's properties and see GPL Ghostscript or Ghostscript followed by a version number as the Producer, it indicates that the document was created or converted using Ghostscript — typically through PostScript to PDF conversion using tools like ps2pdf.

Sample PDF Metadata from Ghostscript:

Title: Technical Report

Author: John Smith

Creator: dvips(k) 5.996 Copyright 2016 Radical Eye Software

Producer: GPL Ghostscript 10.02.1

Creation Date: 2025-01-27 10:30:00

PDF Version: 1.5

Ghostscript is commonly used as a backend for converting PostScript files (from LaTeX, DTP software, or print drivers) into PDF format. The Creator field typically shows the application that generated the original PostScript (like dvips for LaTeX), while the Producer field shows GPL Ghostscript [version].

PDF Creator

Shows the application that generated the original PostScript file (e.g., dvips, PScript5.dll, or another print driver).

PDF Producer

Shows GPL Ghostscript [version] — indicating the PDF was created using Ghostscript's pdfwrite output device.

👻 What is Ghostscript?

Ghostscript is a suite of software based on an interpreter for Adobe's PostScript and PDF page description languages. Originally created by Dr. L. Peter Deutsch for the GNU Project in 1988, it has been under active development for over 35 years. Ghostscript is now maintained by Artifex Software and is one of the most widely used open-source PDF tools.

Project Information

First Release:August 11, 1988 (v1.0)
Original Author:L. Peter Deutsch
Current Developer:Artifex Software
License:AGPL-3.0 / Commercial
Website:ghostscript.com

Technical Details

Written in:C
Platforms:Windows, macOS, Linux, Unix
Latest Version:10.x series
Formats:PS, PDF, EPS, PCL, XPS
Part of:GhostPDL family

Key Capabilities:

📜

PostScript Interpreter

Full PostScript Level 3 language support

📄

PDF Processing

Read, write, and convert PDF 2.0 files

🖨️

RIP Engine

Rasterize to PNG, TIFF, JPEG, and more

💡 Ghostscript in CUPS

Ghostscript is a core component of CUPS (Common Unix Printing System), which powers printing on virtually every Linux distribution and macOS. This makes Ghostscript one of the most widely deployed open-source software packages in the world.

⚙️ How Ghostscript Creates PDFs

Ghostscript creates PDF files using its pdfwrite output device, which converts PostScript, EPS, or existing PDF files into new PDF documents. The most common way to create PDFs is through the ps2pdf utility script.

Common Conversion Workflows:

PostScript to PDF

  • ps2pdf: General PostScript to PDF
  • LaTeX → dvips → ps2pdf: Academic documents
  • Print to File → ps2pdf: From any application
  • EPS → PDF: Vector graphics conversion

PDF Processing

  • PDF optimization: Reduce file size
  • PDF/A conversion: Archival format
  • PDF → Raster: PNG, TIFF, JPEG output
  • PDF → PostScript: For legacy printers

Ghostscript has two PDF interpreters:

  • Original (PostScript-based): Used until version 9.56.1, written in PostScript
  • New (C-based): Default since version 9.55.0, faster and more secure

📤 How to Use Ghostscript

Ghostscript is a command-line tool. Here are the most common operations:

Basic PostScript to PDF Conversion (ps2pdf):

# Simple conversion using ps2pdf wrapper

ps2pdf input.ps output.pdf

# Equivalent direct Ghostscript command

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf input.ps

PDF Optimization (Reduce File Size):

# Optimize for screen viewing (smallest size)

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/screen -sOutputFile=small.pdf input.pdf

# Optimize for ebook quality

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile=ebook.pdf input.pdf

# High quality for printing

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=print.pdf input.pdf

Convert PDF to Images:

# Convert PDF to PNG (300 DPI)

gs -dNOPAUSE -dBATCH -sDEVICE=png16m -r300 -sOutputFile=page%d.png input.pdf

# Convert PDF to JPEG

gs -dNOPAUSE -dBATCH -sDEVICE=jpeg -r150 -sOutputFile=page%d.jpg input.pdf

Set PDF Metadata with pdfmark:

# Create a pdfmark file (metadata.ps):

[ /Title (My Document Title)

/Author (John Smith)

/Subject (Technical Report)

/Keywords (ghostscript, pdf, conversion)

/DOCINFO pdfmark

# Apply metadata during conversion:

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=output.pdf input.ps metadata.ps

🔧 PDF Settings

Ghostscript provides predefined PDF optimization profiles through the -dPDFSETTINGS parameter:

PDFSETTINGS Presets:

Setting Description Image DPI Use Case
/screenLowest quality, smallest size72 DPIScreen viewing, web
/ebookMedium quality, moderate size150 DPIE-readers, tablets
/printerGood quality for printing300 DPIDesktop printers
/prepressHighest quality, largest size300 DPICommercial printing
/defaultBalanced quality/sizeVariesGeneral purpose

Common Options

  • -dNOPAUSE — Don't pause between pages
  • -dBATCH — Exit after processing
  • -dSAFER — Restrict file operations (security)
  • -dCompatibilityLevel=1.4 — PDF version
  • -r300 — Set resolution to 300 DPI
  • -dFirstPage=N — Start at page N
  • -dLastPage=N — End at page N

PDF/A Options

  • -dPDFA=1 — Create PDF/A-1b
  • -dPDFA=2 — Create PDF/A-2b
  • -dPDFA=3 — Create PDF/A-3b
  • -sColorConversionStrategy=RGB
  • -dEmbedAllFonts=true
  • -dSubsetFonts=true

⚠️ Security Note

Always use the -dSAFER option when processing untrusted PostScript or PDF files. This restricts Ghostscript from executing potentially dangerous operations like file system access.

📱 Ghostscript Components

Ghostscript is part of the GhostPDL family of interpreters:

GhostPDL Product Family:

Component Input Formats Description
GhostscriptPostScript, PDF, EPSCore interpreter and graphics library
GhostPDFPDFPDF interpreter (included in Ghostscript)
GhostPCLPCL, PXLHP PCL interpreter
GhostXPSXPSMicrosoft XPS interpreter
GhostPDLAll of the aboveCombined all-in-one interpreter
📜

Ghostscript

PostScript & PDF interpreter, the core component

🖨️

GhostPCL

HP PCL 5e/5c/XL printer language support

📋

GhostXPS

Microsoft XML Paper Specification support

🎨

MuPDF

Lightweight PDF/XPS viewer library

🔤

URW Fonts

35 PostScript-compatible fonts (GPL)

💼

GS Enterprise

Commercial version with Office support

🔍 Understanding PDF Metadata

Ghostscript sets PDF metadata using the pdfmark PostScript operator:

Metadata Field pdfmark Syntax Description
Title /Title (Document Title) Document title
Author /Author (Author Name) Document author
Subject /Subject (Description) Document subject
Keywords /Keywords (key1, key2) Searchable keywords
Creator /Creator (Application) Original creating application
Producer Set automatically Always "GPL Ghostscript [version]"
CreationDate /CreationDate (D:YYYYMMDDHHmmSS) Creation timestamp
ModDate /ModDate (D:YYYYMMDDHHmmSS) Modification timestamp

Complete pdfmark Example (metadata.ps):

[ /Title (Annual Report 2025)

/Author (Jane Smith)

/Subject (Financial Summary)

/Keywords (finance, report, annual, 2025)

/Creator (Microsoft Word)

/CreationDate (D:20250127103000)

/DOCINFO pdfmark

# Usage: gs -sDEVICE=pdfwrite -o output.pdf input.ps metadata.ps

Note: The Producer field cannot be changed — it is always set to "GPL Ghostscript [version]" automatically.

🛠️ Troubleshooting

Common issues when using Ghostscript for PDF creation:

Fonts Not Embedded or Substituted

Cause: Ghostscript cannot find the fonts used in the PostScript file, or fonts are not being embedded.

Solution: Use -dEmbedAllFonts=true to force font embedding. Ensure font paths are correctly configured in Ghostscript's fontmap. For PDF/A output, all fonts must be embedded.

Output PDF Is Very Large

Cause: Images are not being compressed, or using prepress quality settings.

Solution: Use -dPDFSETTINGS=/screen or /ebook for smaller files. Add -dDownsampleColorImages=true -dColorImageResolution=150 to reduce image resolution.

Cannot Change Producer Field

Cause: The Producer field is hardcoded in Ghostscript and cannot be changed via pdfmark.

Solution: This is by design — Ghostscript always sets the Producer to "GPL Ghostscript [version]". If you need to change it, you must use a separate tool like ExifTool or QPDF after conversion.

Security Warning or SAFER Mode Issues

Cause: Ghostscript 9.50+ enables SAFER mode by default, which restricts file operations.

Solution: If you need to access files, use -dNOSAFER (only for trusted input). For most conversions, SAFER mode should remain enabled for security.

PostScript Errors or Corrupt Output

Cause: Malformed PostScript input or incompatible features.

Solution: Check the PostScript file for errors. Try adding -dPDFDontUseFontObjectNum for font issues. Use the newer C-based PDF interpreter (default in 9.55+) for better compatibility.

❓ Frequently Asked Questions

When a PDF shows "GPL Ghostscript" followed by a version number (like "GPL Ghostscript 10.02.1") as the Producer, it means the PDF was created using Ghostscript's pdfwrite output device. This typically indicates PostScript to PDF conversion using ps2pdf or direct Ghostscript commands. The "GPL" indicates the open-source version licensed under the GNU AGPL.

Yes, Ghostscript is available under the GNU AGPL (Affero General Public License) for open-source use. This means you can use it freely, but if you distribute software that uses Ghostscript, you must also make your source code available. Commercial licenses are available from Artifex Software for proprietary applications that cannot comply with the AGPL.

Ghostscript was first released on August 11, 1988, as version 1.0. It was created by Dr. L. Peter Deutsch for the GNU Project as an open-source PostScript interpreter. With over 35 years of active development, it is one of the longest-running open-source software projects.

ps2pdf is a convenience wrapper script that invokes Ghostscript with the pdfwrite device to convert PostScript files to PDF. It simplifies the conversion command. Variants include ps2pdf12, ps2pdf13, and ps2pdf14 for targeting specific PDF compatibility levels (1.2, 1.3, 1.4 respectively).

Yes! Ghostscript supports creating PDF/A-1b, PDF/A-2b, and PDF/A-3b compliant documents. Use the -dPDFA=1, -dPDFA=2, or -dPDFA=3 option along with appropriate color and font settings. You'll also need to supply an ICC profile and ensure all fonts are embedded.

Ghostscript is currently maintained by Artifex Software, Inc., headquartered in San Rafael, California. Artifex handles both the open-source AGPL version and commercial licensing. The original creator, Dr. L. Peter Deutsch, retired from the project around 2001. Artifex has been the steward of Ghostscript since the early 2000s.

Yes! Ghostscript is excellent for PDF optimization. Use -dPDFSETTINGS=/screen for maximum compression (smallest file), /ebook for moderate compression, or /printer for good quality with reasonable size. You can also manually control image downsampling and compression settings for fine-tuned optimization.

🛠️ 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: Ghostscript PDF Metadata

  • Ghostscript first released August 11, 1988
  • Producer shows GPL Ghostscript [version]
  • Creator shows the source application (dvips, etc.)
  • Use ps2pdf for PostScript to PDF conversion
  • Available under AGPL open-source license
  • Created by Dr. L. Peter Deutsch
  • Now maintained by Artifex Software
  • Supports PDF/A archival format
  • Use pdfmark to set metadata
  • Core component of CUPS printing