Software Development Kit

The SDK contains all the Examples and API interfaces, with API documentation provided in CHM format. See the License section for an information on licensing.

Download the SDK

Current litePDF version is 2.0.5.0. It is built with PoDoFo 0.9.7. The PoDoFo has been built with these libraries:

The litePDF SDK contains two versions of litePDF.dll and litePDF.lib files, one is built in Microsoft Visual C++ (a coff format), which resides directly in bin/ and lib/ folders, and one built in C++ Builder (an omf format), which resides in bin/omf/ and lib/omf/ folders. The two libraries are interchangeable, as long as the PoDoFo::PdfDocument is not used - it is, when there are not used litePDF_GetPoDoFoDocument() or TLitePDF::GetPoDoFoDocument() functions. If you need these, make sure you distribute correct litePDF.dll file with your executable.

Project page on SourceForge can be found here.

Known issues

While litePDF tries to support most of the GDI functions, there will always be some missing, because there is no equivalent in PDF drawing instructions (like InvertRect and ExtFloodFill). This includes palette and color space operations, some GL functions and certain raster operation modes.

Precise font mapping requires large-enough pixel scale to be used. The Examples use page pixel size 10 times larger than the page size in millimeters. If you see weird font letter positions, then try to increase page's pixel size.

ChangeLog

2.0.5.0
  - Write indexed color space palette as a PdfString
  - Apply world transformation matrix when constructing clip region (#37)
  - Specify how to reserve more bytes for signature in the error message
  - Add API to set signature hash algorithm and default to SHA512 (#40)
  - litePDF.pas: Correct syntax around `overload` statement (#44)
  - Correct MetaRgn drawing context restore (#43)

2.0.4.0
  - PoDoFo updated to 0.9.7 release
  - Window/Viewport Org/Ext are part of the DC state
  - Expand 5-bit color in images to 8-bit (#19)

2.0.3.0
  - CreateSignature() ignores annotationFlags argument (#11)
  - Add API to create URI annotations (#16)
  - Add a flag to reset graphics state when editing existing file (#20)
  - Add API to set signature certification (#22)

2.0.2.0
  - ExtTextOut() with no text draws background incorrectly ][
  - Add API to substitute/embed fonts per font
  - Correct signature field appearance resource placement
  - Correct a function name reference in error message in signToOutputDevice()
  - Use VCL Exception with C++ API when LITEPDF_USE_VCL_EXCEPTION is defined
  - Correct some typos in developer documentation comments

2.0.1.0a
  - Rebuilt 32-bit Visual C++ version to be able to open certain files

2.0.1.0
  - PoDoFo updated to 0.9.6 release
  - Correct copy&paste typo in litePDF_AddSignerPEM(), found by aaa945260
  - ExtTextOut() with no text draws background incorrectly
  - Add API to Get/Set page rotation

2.0.0.0
  - Released as an Open Source project

1.3.1.0
  - Change how signature fields are searched for

1.3.0.0
  - PoDoFo updated to 0.9.5 release
  - Fixed an issue with text-only meta file drawing
  - Added new parameter to LoadFromFile(), LoadFromFileW() and LoadFromData()
    to support incremental updates
  - Completely rewritten API for digital signatures, which also allows to prepare
    signature field or sign an already existing signature field
  - Digitally sign, using PFX/PEM certificates, with internal hash computation or
    use a manual hash computation API

1.2.0.0
  - Fix a use-after-free bug when unsetting ExtPen with a standard NULL pen
  - PoDoFo updated to 0.9.4 release
  - Added support for 'inch' unit, beside millimeters. This required
    an API change for all the functions which expected millimeters.
    A global GetUnit/SetUnit functions had been added and the C++
    and Pascal interfaces have also MMToUnit/InchToUnit helper
    functions and their reverse versions UnitToMM/UnitToInch.
  - API change in some C++ and Pascal getters to rather return the value,
    then pass it in an out parameter.

1.1.2.0
  - Enhance font mapping to better match with the HDC/TCanvas font

1.1.1.0
  - Added API to create link annotations
  - Added API to create bookmarks
  - Changed C++ and Delphi interfaces to load library on demand,
    not during class creation

1.1.0.0
  - API related changes
    * Fonts are embedded by default
    * Digital signing functions have a new parameter, dateOfSign
    * Added new API for IncSign (incremental digital signing)
    * Added new API to get digital signatures content
  - Updated OpenSSL to 1.0.1h
  - Updated PoDoFo to 0.9.3
  - Correct byte-width for color-indexed images
  - Correct SaveDC/RestoreDC code when also clipping some region
  - Provide x64 native build

1.0.0.3
  - Provide extended error messages when available
  - Do not abort on errors when finishing drawing
  - Reject create of AES encrypted file-based documents
    (use memory-based documents instead)

1.0.0.2
  - Fix text draw positioning precision (it could prevent proper document
    view under Adobe Reader)

1.0.0.1
  - Fix a typo in API documentation
  - Fix missing font issue when subset-embedding in signed documents
  - Extend Delphi example with other C++ examples converted to Pascal
  - Force font embedding (subset) for encrypted documents, if not set

1.0.0.0
  - Initial public release