Software Development Kit

The SDK contains all the Examples and API interfaces, with API documentation provided in CHM format. There is no extra SDK for trial and paid version of the litePDF, the only difference is an authorization key, which unlocks all API functions and makes litePDF stop drawing notices of it on the pages. Check out the Contact section for an information on licensing and how to get the authorization key. Once you have the key, depending on the API you'll choose to use, either assign it to LitePDFAuthorizationKey before the TLitePDF class is instantiated, like in the main() function, or use it within litePDF_CreateContext() function.

Download the SDK

Current litePDF version is 1.3.1.0. It is built with PoDoFo 0.9.5. The PoDoFo has been built with these libraries:

Sources of modified PoDoFo with all applied modifications can be downloaded here.

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.

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.

It's easy to test whether litePDF satisfies your needs, thus do not hesitate and give it a try. See the Contact section for a way how to send any suggestions, concerns, questions or bugs regarding litePDF to us.

ChangeLog

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
TOPlist