All Versions
4
Latest Version
Avg Release Cycle
-
Latest Release
-

Changelog History

  • v0.10.0 Changes

    • 🛠 PdfImage: Cleaned/reviewed/fixed SetData()/SetDataRaw()
    • 📇 Renamed PdfPageTree -> PdfPageCollection
    • ➕ Added XMP metadata reading/saving. Added PdfMetadata class
    • ➕ Added text extraction API
    • 🔀 Review I/O API: Merged InputDevice/OutputDevice into StreamDevice. New hierarchy deriving StreamDevice
    • Reviewed PdfObjectStream API: added streaming operations, GetInputStream(), GetOutputStream(). Renamed GetFilteredCopy() -> GetUnwrappedCopy()/UnwrapTo(). They only unwrap non media filters (see PdfImage::DecodeTo for media ones)
    • PdfImage: Added DecodeTo(pixelFormat)
  • v0.9.22 Changes

    • 🛠 Fixed serialization of strings with non ascii PdfDocEncoding characters
    • ✂ Removed PdfLocaleImbue
    • 🚚 PdfEncrypt: Removed PdfReference state. Added PdfStatefulEncrypt
    • ✂ Removed use of std::ostringstream. Added efficient outstringstream
    • ➕ Added PdfMath functionalities (matrix transformations and so on)
  • v0.9.21 Changes

    • 🛠 Fixed serialization of UTF-16BE strings
    • 📜 More lenient PdfDate parsing
  • v0.9.20 Changes

    • pdfmm is now a C++17 library
    • ➕ Added move semantics for PdfVariant, PdfObject, PdfArray, PdfDictionary
    • 👌 Improved XRefStream support, added support in incremental saves
    • 🛠 Many fixes in save incremental object/generation number incrementing
    • String backed with UTF-8 storage
    • PdfName backed with UTF-8 storage
    • 👍 Brand new PdfEncoding class with support for both /Encoding and /ToUnicode, more complete Unicode support
    • ➕ Added a PdfDynamicEncoding class that creates a custom CID encoding based on actual used glyphs used
    • Automatic creation of CIDMap and /ToUnicode
    • ➕ Added PdfSigner class and mm::SignDocument()
    • ➕ Added PdfFontType1Encoding, which support Type1 implicit encoding
    • ➕ Added support for PDF 2.0 UTF-8 strings (untested)
    • ➕ Added indirect iteration for PdfArray/PdfDictionary (see GetIndirectIterator methods)
    • ➕ Added PdfDocument::GetPdfALevel()
    • ➕ Added PDFA preserving writing
    • 🔨 Refactored/Reviewed PdfInputDevice: versions that take buffer do not copy it (use istringviewstream)
    • ➕ Added font replacement facility PdfFont::TryCreateFontSubstitute()
    • ➕ Added standard14 fonts embedding, with font programs from PDFium
    • Reviewed PdfXObject hierarchy, added PdfXObjectForm, PdfXObjectPostScript
    • ➕ Added PdfTextState and use it to compute string widths in PdfFont
    • 👌 Improved PdfDocEncoding to expose conversion utf8 conversion facilities
    • 📜 PdfParser: Support also files with whitespace offset before magic start
    • PdfObject auto ownership
    • PdfContents: create on demand /Contents. First create a single stream, after array
    • 👌 Improved IsDirty handling: less dirty bit sets
    • ➕ Added PdfPostScriptTokenizer that as better general support for PostScript
    • PdfDictionary: Review/convert GetKey -> FindKey
    • PdfDictionary: Review GetKeyAs methods
    • 🛠 Fixed hundreds of warnings. No warnings left in tested builds
    • 🔧 FontConfigManager: better handling with custom configurations
    • ✂ Removed PdfMutex. Used std::mutex where necessary
    • 🚚 Datatypte: remove PdfDataType::HexString
    • ✂ Removed support for old compilers (MSVC6, hpux, borland, turbo...)
    • ➕ Added better endian swap functions
    • ✂ Removed auto_ptr usage
    • Removed pdf_int/pdf_uint types
    • ✂ Removed use of pdf_long/long types
    • ✂ Removed use of ptrdiff_t
    • ✂ Removed unistring and ugly string conversion code. Moved to utfcpp
    • Reviewed PdfObject::GetNumber/PdfObject::GetReal (strict/lenient)
    • ✂ Remove PdfObject inheritance on PdfVariant
    • Reviewed PdfVariant/PdfObject/PdfArray/PdfDictionary equality/disequality operators
    • Simplified copyright headers
    • Object copy constructor must copy also stream
    • PdfElement: GetDocument(), GetObject() refs
    • PdfVecObjects: GetParentDocument() -> GetDocument()
    • ✂ Remove PdfSignOutputDevice::SetSignatureSize(size)
    • 🚚 Moved inline code to .cpp
    • ✂ Remove comments on overrides
    • 🚚 Cleaned CMakeFiles (removed custom Find<>.cmake)
    • NULL -> nullptr
    • 👉 Use shared_ptr in PdfFontMetrics, PdfEncoding in PdfFont
    • 🚚 Cleaned PdfFontCache (renamed PdfFontManager), removed font functions from PdfDocument
    • PdfArray::FindAt() return ref
    • Simplified license headers
    • Reviewed PdfPageTree and PdfPageTreeCache API
    • Reviewed most int vs unsigned indexing
    • ✂ Remove all hungarian notation
    • 💅 Sanitize code style
    • Removed all const char* and passed to string/string_view
    • 📇 Renamed PdfFontCache -> PdfFontManager
    • 📇 Renamed PdfVecObjects -> PdfIndirectObjectList
    • 📇 Renamed PdfNamesTree -> PdfNameTree
    • 📇 Renamed PdfPagesTree -> PdfPageTree
    • 📇 Renamed PdfPagesTreeCache -> PdfPageTreeCache
    • 🚚 PdfObject: removed GetIndirectObject(), MustGetIndirectKey (must use PdfDictionary now)
    • 🆕 Remove PdfMemoryManagement.cpp, Removed podofo_new, podofo_free
    • ➕ Add chars type for char array storage/buffering which inerits string
    • Review pointer vs ref parameters/return types
    • ✂ Remove PdfRefCountedBuffer, PdfRefCountedInputDevice, PdfRefCountedOutputDevice
    • ✂ Removed PdfMemoryManagement and all C style malloc/free usage
    • 🔨 Refactored PdfOutputDevice (PdfMemoryOutputDevice/PdfFileOutputDevice/etc.)
    • 🚚 Clean PdfError, remove wchar_t
    • ✂ Remove printf, snprintf
    • 📇 Renamed PdfElement-> {PdfDictionaryElement|PdfArrayElement} that respectively have GetDictionary(), GetArray()
    • Reviwed PdfWriteFlags, added PdfSaveOptions