Here are the detailed modifications (extracted from SynPdf.pas):

  • can now generate PDF/A-1 files if the new PDFA1 property is set to true
  • new CreateLink and CreateBookMark methods for TPdfDocument, to easily handle bookmarks and links
  • new CreateOutline method for TPdfDocument, for direct outline adding 
  • new TPdfPage.PageLandscape and TPdfDocument.DefaultPageLandscape properties
  • can use EMR_GDICOMMENT to embed some SynPDF related data (like bookmarks, links, and document outline) in the source TMetaFile - used by TSQLite3Pages
  • new TPdfTextString class, used to handle Unicode parameters (e.g. in TPdfInfo, which properties are now handling unicode encoding as expected)
  • new CreateOrGetImage method to easily add a bitmap to the page, with internal caching: if the same bitmap content is sent more than once, only one TPDFImage object will be used (used for emf enumeration, e.g. SQLite3Pages)
  • now handle justified text from metafile (i.e. call to SetTextJustification Windows API will change the PDF word space as expected)
  • Uniscribe API now made public (and documented as such), for the upcoming TRenderPages
  • fixed memory leak in TPdfOutlineRoot.Create
  • fixed issue in TPdfDocumentGDI.VCLCanvasSize
  • fixed issue with fixed-width font unicode characters display
  • FontSub.dll library is loaded only once for the whole application

Compatible with Delphi 6 up to Delphi XE.

Source code released under GPL/LGPL/MPL license, on choice.
That means: free, like a bird, and like a beer.

Download, comments and feedback are available on our forum.