Pdfio Versions Save

PDFio is a simple C library for reading and writing PDF files.

v1.2.0

3 months ago

PDFio 1.2.0 is a feature release. Changes include:

  • Now use autoconf to configure the PDFio sources (Issue #54)
  • Added pdfioFileCreateNumberObj and pdfioFileCreateStringObj functions (Issue #14)
  • Added pdfioContentTextMeasure function (Issue #17)
  • Added pdfioContentTextNewLineShow and pdfioContentTextNewLineShowf functions (Issue #24)
  • Renamed pdfioContentTextNextLine to pdfioContentTextNewLine.
  • Updated the maximum number of object streams in a single file from 4096 to 8192 (Issue #58)
  • Updated the token reading code to protect against some obvious abuses of the PDF format.
  • Updated the xref reading code to protect against loops.
  • Updated the object handling code to use a binary insertion algorithm - provides a significant (~800x) improvement in open times.
  • Fixed handling of encrypted PDFs with per-object file IDs (Issue #42)
  • Fixed handling of of trailer dictionaries that started immediately after the "trailer" keyword (Issue #58)
  • Fixed handling of invalid, but common, PDF files with a generation number of 65536 in the xref table (Issue #59)

Enjoy!

v1.1.4

5 months ago

PDFio 1.1.4 is a bug fix release. Changes include:

  • Fixed detection of encrypted strings that are too short (Issue #52)
  • Fixed a TrueType CMAP decoding bug.
  • Fixed a text rendering issue for Asian text.
  • Added a ToUnicode map for Unicode text to support text copying.

Enjoy!

v1.1.3

6 months ago

PDFio 1.1.3 is a bug fix release. Changes include:

  • Fixed Unicode font support (Issue #16)
  • Fixed missing initializer for 40-bit RC4 encryption (Issue #51)

Enjoy!

v1.1.2

7 months ago

PDFio 1.1.2 fixes a number of PDF reading issues as well as a build issue. Changes include:

  • Updated pdfioContentSetDashPattern to support setting a solid (0 length) dash pattern (Issue #41)
  • Fixed an issue with broken PDF files containing extra CR and/or LF separators after the object stream token (Issue #40)
  • Fixed an issue with PDF files produced by Crystal Reports (Issue #45)
  • Fixed an issue with PDF files produced by Microsoft Reporting Services (Issue #46)
  • Fixed support for compound filters where the filter array consists of a single named filter (Issue #47)
  • Fixed builds on Windows - needed windows.h header for temporary files (Issue #48)

Enjoy!

v1.1.1

1 year ago

PDFio 1.1.1 fixes a potential denial of service issue and fixes some build issues. Changes include:

  • CVE-2023-28428: Fixed a potential denial-of-service with corrupt PDF files.
  • Fixed a few build issues.

Enjoy!

v1.1.0

1 year ago

PDFio 1.1.0 fixes a potential denial of service issue, fixes a few general bugs, and adds a few new APIs. Changes include:

  • CVE-2023-24808: Fixed a potential denial-of-service with corrupt PDF files.
  • Added pdfioFileCreateTemporary function (Issue #29)
  • Added pdfioDictIterateKeys function (Issue #31)
  • Added pdfioContentPathEnd function.
  • Added protection against opening multiple streams in the same file at the same time.
  • Documentation updates (Issue #37)
  • Fixed "install-shared" target (Issue #32)
  • Fixed pdfioFileGet... metadata APIs (Issue #33)
  • Fixed pdfioContentMatrixRotate function.

Enjoy!

v1.0.1

2 years ago

PDFio 1.0.1 is a bug fix release. Changes include:

  • Added missing pdfioPageGetNumStreams and pdfioPageOpenStream functions.
  • Added demo pdfiototext utility.
  • Fixed bug in pdfioStreamGetToken.

Enjoy!

v1.0.0

2 years ago

The first stable release of PDFio is now available! 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.

Enjoy!

v1.0rc1

2 years ago

PDFio 1.0rc1 is the first candidate release of PDFio. Changes include:

  • Fixed a few stack/buffer overflow bugs discovered via fuzzing.

Enjoy!

v1.0b2

2 years ago

PDFio 1.0b2 is the second beta release of PDFio. Changes include:

  • Added pdfioFileCreateOutput API to support streaming output of PDF (Issue #21)
  • Fixed all-shared target (Issue #22)
  • Fixed memory leaks (Issue #23)
  • Updated pdfioContentSetDashPattern to accept double values (Issue #25)
  • Added support for reading and writing encrypted PDFs (Issue #26)
  • Fixed some issues identified by a Coverity scan.

Enjoy!