Michael R Sweet 65098b5509 Fix implementation of LZWDecode filter to account for the EarlyChange parameter
(somewhat buried, very frustrating...)

Add some debugging and update the test suite to find page metadata in any parent
page object.
2026-01-16 15:57:43 -05:00
2026-01-01 09:59:16 -05:00
2025-10-05 15:35:23 -04:00
2026-01-14 12:35:26 +08:00
2026-01-16 11:32:18 -05:00
2021-06-04 11:03:15 -04:00
2021-11-29 18:47:04 -05:00
2023-12-05 14:07:52 -05:00
2023-12-03 19:16:34 -05:00
2021-04-10 08:00:52 -04:00
2025-02-12 09:25:57 -05:00
2026-01-16 11:36:34 -05:00
2025-12-21 19:18:33 -05:00
2021-09-01 17:09:05 -04:00
2025-12-21 19:18:33 -05:00
2026-01-10 14:44:47 -05:00
2025-11-10 16:14:21 -05:00
2025-12-31 11:44:28 -05:00
2021-07-26 11:58:20 -04:00
2026-01-16 11:32:37 -05:00
2021-10-26 07:12:41 -04:00
2026-01-13 13:44:36 -05:00
2026-01-13 10:34:38 -05:00

pdfio - PDF Read/Write Library

Version Apache 2.0 Build Status Coverity Scan Status

PDFio is a simple C library for reading and writing PDF files. The primary goals of PDFio are:

  • Read and write any version of PDF file
  • Provide access to pages, objects, and streams within a PDF file
  • Support reading and writing of encrypted PDF files
  • Extract or embed useful metadata (author, creator, page information, etc.)
  • "Filter" PDF files, for example to extract a range of pages or to embed fonts that are missing from a PDF
  • Provide access to objects used for each page

PDFio is not concerned with rendering or viewing a PDF file, although a PDF RIP or viewer could be written using it.

Requirements

PDFio requires the following to build the software:

  • A C99 compiler such as Clang, GCC, or MS Visual C
  • A POSIX-compliant make program
  • LIBPNG (1.6 or later) for full PNG image support (optional)
  • ZLIB (1.1 or later)

IDE files for Xcode (macOS/iOS) and Visual Studio (Windows) are also provided.

Documentation

See the man page (pdfio.3) and full HTML documentation (pdfio.html) for information on using PDFio.

Installing PDFio

PDFio uses a configure script on Unix systems to generate a makefile:

./configure

If you want a shared library, run:

./configure --enable-shared

The default installation location is "/usr/local". Pass the --prefix option to make to install it to another location:

./configure --prefix=/some/other/directory

Once configured, run the following to make the library:

make all

To test it, run:

make test

To install it, run:

sudo make install

Visual Studio Project

The Visual Studio solution ("pdfio.sln") is provided for Windows developers and generates the PDFIO1 DLL. You can also use NuGet to install the pdfio_native package.

Xcode Project

There is also an Xcode project ("pdfio.xcodeproj") you can use on macOS which generates a static library that will be installed under "/usr/local" with:

sudo xcodebuild install

PDFio is Copyright © 2021-2026 by Michael R Sweet.

This software is licensed under the Apache License Version 2.0 with an (optional) exception to allow linking against GPL2/LGPL2 software. See the files "LICENSE" and "NOTICE" for more information.

Description
PDFio is a simple C library for reading and writing PDF files.
Readme Apache-2.0 11 MiB
Languages
C 96.3%
M4 1.3%
Shell 1.3%
Makefile 1%