Skia/PDF Creator & Producer

Understanding PDF metadata that shows Skia/PDF as the Producer — learn how Google's powerful 2D graphics library creates PDF files in Chrome, Android, Flutter, and many other applications.

🎨 Graphics Library 🔵 Google 🆓 Open Source

📄 About This PDF Metadata

When you examine a PDF file's properties and see Skia/PDF listed as the Producer, it indicates that the document was generated using Google's Skia graphics library. This is commonly seen in PDFs created by Chrome, Chromium-based browsers, Android apps, and Flutter applications.

Sample PDF Metadata from Chrome/Skia:

Creator: Chromium

Producer: Skia/PDF m131

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

PDF Version: 1.4

The "m" followed by a number (e.g., "m131") in the Producer field indicates the Chromium milestone version. This helps identify which version of Chrome or the Skia library was used to generate the PDF.

PDF Creator

Usually shows the application name (e.g., Chromium, Chrome, or the app name). This identifies the software that initiated the PDF creation.

PDF Producer

Shows Skia/PDF followed by the milestone version (e.g., m131). This is the underlying graphics engine that renders and generates the actual PDF content.

🎨 What is Skia?

Skia is an open-source 2D graphics library developed and maintained by Google. It provides common APIs that work across a variety of hardware and software platforms, serving as the graphics engine for some of the world's most widely used software including Google Chrome, ChromeOS, Android, and Flutter.

Project Information

Developer:Google (originally Skia Inc.)
Acquired:2005 by Google
Open Sourced:2008
License:BSD (New BSD)
Website:skia.org

Technical Details

Language:C++
Platforms:Windows, Linux, macOS, Android, iOS
GPU Backends:OpenGL, Vulkan, Metal, Direct3D
GitHub:google/skia
Stars:9,500+

Key Features of Skia:

✏️

2D Drawing

Draw shapes, paths, text, and images with anti-aliasing

🔤

Typography

Advanced text rendering with OpenType features and emoji support

🖼️

Image Processing

Decode, encode, and manipulate various image formats

GPU Acceleration

Hardware-accelerated rendering via OpenGL, Vulkan, Metal

📄

PDF Backend

Generate PDF documents programmatically

🌐

Cross-Platform

Consistent rendering across all major platforms

⚙️ How Skia Creates PDFs

Skia includes a dedicated PDF backend that can generate PDF documents directly from its drawing commands. When an application like Chrome needs to create a PDF (e.g., "Print to PDF"), it uses Skia's PDF backend to render the content and produce the final PDF file.

PDF Generation Process:

  1. Application sends drawing commands to Skia Canvas
  2. Skia records operations (shapes, text, images)
  3. PDF backend converts commands to PDF operators
  1. Resources (fonts, images) are embedded or referenced
  2. Content streams are compressed for efficiency
  3. Final PDF file is written with metadata

The Skia PDF backend supports advanced features like font subsetting, image compression (JPEG quality control), PDF/A-2b conformance, and structured document tags for accessibility.

💡 Did You Know?

Skia was originally developed by Skia Inc., acquired by Google in 2005, and open-sourced in 2008. It's been the graphics engine behind Chrome since the browser's launch, making it one of the most battle-tested graphics libraries in existence.

📱 Applications Using Skia

Skia powers many major applications and platforms. PDFs created by any of these may show "Skia/PDF" in the metadata:

🌐 Web Browsers

  • Google Chrome - Print to PDF feature
  • Chromium - Open-source base browser
  • Microsoft Edge - Chromium-based since 2020
  • Opera, Brave, Vivaldi - Chromium-based browsers
  • Mozilla Firefox - Uses Skia for canvas rendering

📱 Mobile & Desktop

  • Android - System graphics rendering
  • ChromeOS - Entire desktop rendering
  • Flutter - Cross-platform app framework
  • Electron apps - When using Chrome's print
  • LibreOffice - Optional Skia backend (v7.1+)

🛠️ Development Tools

  • Puppeteer - Headless Chrome automation
  • Playwright - Browser automation
  • Headless Chrome - Server-side PDF generation
  • SkiaSharp - .NET bindings for Skia
  • Skija - Java bindings for Skia

☁️ Cloud Services

  • Google Docs - Export to PDF
  • Google Sheets - Print/export to PDF
  • Google Slides - Export presentations
  • AppSheet - PDF generation
  • Various SaaS platforms - Using headless Chrome

🏷️ Understanding the Metadata Format

The Skia/PDF producer string follows a specific format that provides version information:

Producer String Format:

Skia/PDF m[version]

Examples:

  • Skia/PDF m131 - Created with Chromium milestone 131
  • Skia/PDF m119 - Created with Chromium milestone 119
  • Skia/PDF m104 - Created with Chromium milestone 104

Version Number Meaning:

Component Description Example
Skia/PDFIdentifies Skia's PDF backendAlways "Skia/PDF"
mStands for "milestone"Always "m"
NumberChromium milestone version131, 119, 104, etc.

The milestone number corresponds to Chrome's version numbering. For example, Skia/PDF m131 indicates the PDF was created with Skia from Chrome/Chromium version 131.x. This helps identify when the PDF was created and which features were available.

⚠️ Note

Non-browser applications using Skia directly (like Flutter or SkiaSharp) may show different version formats, such as just "Skia/PDF" without a milestone number, or with the specific Skia library version.

📋 Common PDF Sources

Here are the most common ways PDFs with Skia/PDF metadata are created:

The most common source. When you use Ctrl+P (or Cmd+P) in Chrome or Edge and select "Save as PDF" as the destination, the browser uses Skia to render and generate the PDF.

Metadata: Creator: Chromium (or Chrome/Edge), Producer: Skia/PDF m[version]

When you export documents from Google Workspace applications (Docs, Sheets, Slides) as PDF, they use Google's rendering infrastructure which is based on Skia.

Metadata: Creator: Google Docs (or similar), Producer: Skia/PDF m[version]

Automation tools that control headless Chrome to generate PDFs from web pages. Commonly used for invoices, reports, and automated document generation.

Metadata: Creator: HeadlessChrome/[version], Producer: Skia/PDF m[version]

Flutter apps use Skia as their rendering engine. When these apps generate PDFs (using packages like pdf or printing), they may produce PDFs with Skia metadata.

Metadata: Creator: [App Name], Producer: Skia/PDF

Desktop applications built with Electron (like VS Code, Slack, Discord) use Chromium internally. If they offer PDF export functionality, it uses Skia.

Metadata: Creator: [App Name], Producer: Skia/PDF m[version]

🔍 Understanding PDF Metadata

PDFs created with Skia contain standard metadata fields. Applications can customize some of these when creating the PDF:

Metadata Field Typical Value Description
Creator Chromium, Chrome, App name The application that initiated PDF creation
Producer Skia/PDF m131 Skia PDF backend with version number
Title Page title or document name Often from HTML <title> tag
Author Varies (often empty) Document author if specified
Creation Date Timestamp When the PDF was created
PDF Version 1.4 PDF specification version
Tagged yes or no Whether PDF has accessibility tags

View PDF Metadata (Command Line):

# Using pdfinfo (Linux/macOS)

pdfinfo document.pdf

# Example output:

Title: My Web Page

Creator: Chromium

Producer: Skia/PDF m131

CreationDate: Mon Jan 27 10:30:45 2025

Tagged: yes

Pages: 3

🛠️ Troubleshooting

Common issues with PDFs created using Skia/PDF:

Images Not Displaying in Some PDF Readers

Cause: Skia uses modern PDF features that older PDF readers may not fully support.

Solution: Use an up-to-date PDF reader like Adobe Acrobat Reader, Chrome's built-in viewer, or Foxit Reader. Alternatively, re-save the PDF using a different tool.

PDF File Size Too Large

Cause: High-resolution images or uncompressed content in the original web page.

Solution: In Chrome's print dialog, use "Simplified" view if available, or compress the PDF afterward using tools like PDF compressors or Ghostscript.

Fonts Look Different Than Expected

Cause: Skia embeds font subsets. If the web page uses fonts not available for embedding, fallback fonts are used.

Solution: Ensure web fonts have proper licensing for embedding, or use system fonts that are always available.

Links Not Working in PDF

Cause: Some PDF creation methods may not preserve hyperlinks.

Solution: When using Chrome's Print to PDF, ensure "Background graphics" is checked in More settings. For programmatic generation, ensure link preservation is enabled.

PDF Not Opening / Appears Corrupted

Cause: Incomplete download, interrupted PDF generation, or incompatible reader.

Solution: Re-download or regenerate the PDF. Try opening in a different PDF reader. If using automated tools, ensure the generation process completes fully before accessing the file.

❓ Frequently Asked Questions

When a PDF shows "Skia/PDF" as the Producer in its metadata, it means the document was generated using Google's Skia graphics library. This is commonly seen in PDFs created by Chrome's "Print to PDF" feature, Google Docs exports, or applications using headless Chrome for PDF generation.

"Chromium" appears as the Creator when the PDF was generated using Chrome, Edge, or another Chromium-based browser. The browser acts as the application creating the PDF, while Skia is the underlying engine that produces it. This is normal behavior for browser-generated PDFs.

The "m" stands for "milestone" and the number corresponds to the Chromium version. For example, "Skia/PDF m131" means the PDF was created with Skia from Chromium milestone 131 (Chrome version 131.x). This helps identify when the PDF was created and which version of the rendering engine was used.

Yes, Skia is completely free and open-source software licensed under the BSD license. It can be used for personal, commercial, and enterprise applications without any licensing fees. Google maintains and sponsors development, but anyone can use and contribute to the project.

When using Skia directly in code, you can set custom Creator metadata. However, when using browser "Print to PDF," the metadata is set automatically. To change metadata afterward, you can use PDF editing tools like exiftool, pdftk, or PDF libraries in various programming languages.

Modern versions of Chrome (and Skia) can generate tagged PDFs that support accessibility features. You can check if a PDF is tagged by viewing its metadata (look for "Tagged: yes"). Tagged PDFs include structural information that screen readers and assistive technologies can use.

Open the PDF and check its properties/metadata. In most PDF readers, you can access this via File → Properties or Document Properties. Look for the "Producer" field — if it shows "Skia/PDF" (with or without a version number), the PDF was created using Skia's PDF backend.

🛠️ Related Tools

Viewer

PDF Metadata Viewer

Free tool to view PDF metadata including Creator, Producer, and creation dates.

View PDF Metadata →
Converter

PDF Converter

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

Convert PDF Files →

📝 Summary: Skia/PDF Metadata

  • Skia is Google's 2D graphics library
  • Producer shows Skia/PDF m[version]
  • Creator typically shows the application name
  • Powers Chrome, Android, Flutter
  • "m" number = Chromium milestone version
  • Originally by Skia Inc., acquired by Google in 2005
  • Open source since 2008 (BSD license)
  • Used by billions of devices worldwide
  • Supports tagged/accessible PDFs
  • Common in browser "Print to PDF" output