[Lazarus] PDF generator

Jesus Reyes A. jesusrmx at gmail.com
Sat Mar 5 19:22:42 CET 2016


En Sat, 05 Mar 2016 11:27:24 -0600, Michael Van Canneyt  
<michael at freepascal.org> escribió:

> Hi,
>
> I have committed a PDF generator to FPC Subversion: fcl-pdf.
>
> Why a new pascal PDF generator ? Mainly because the existing ones  
> written in Object Pascal suffer from
> several disadvantages: - Font support usually incomplete or downright  
> buggy.
> - Dependency on a GUI (LCL, VCL, Windows).
> The latter is important because the PDFs must be generated on a headless  
> (no
> display) webserver.
>
> So, the fcl-pdf package contains a PDF generating unit fppdf that does  
> not depend
> on any external libraries or GUI system.
>
> The PDF generator has the following features:
> - Support for basic shapes.
> - Support for basic line styles.
> - Dictionary support.
> - Multi-page PDF.
> - Image support.
> - TTF Font support.
> - Font embedding.
> - Unicode font support.
> - Stream Compression.
> - Image embedding.
> - Several paper types.
> - Portrait/Landscape.
> - Support for multiple measurement units.
> - Rotation matrix system.
> - PDF creator information.
> - The generated PDF passes several PDF validators.
>
> The library is based on a library that came with FPGUI, with a feature  
> set
> which came closest to what I desired. It was completed for the company I
> work for by Graeme Geldenhuys, and is heavily unit tested.
>
> It is not yet feature-complete, but the above should be ample for most
> applications.
>
> In the near future, I expect to commit a reporting engine which,  
> likewise, does not need a GUI (but can use one) and uses the PDF  
> generator as one possible backend.
>
> Todo:
> - Implement TFPCustomCanvas descendent (TPDFCanvas) that draws on a PDF.
>    (should allow easy integration in LCL) - Partial embedding of  
> (unicode) fonts (only used glyphs) for smaller PDFs.
> - On windows (possibly mac), allow to use native font mechanisms for  
> extracting info from TTF files.
> - Reduce memory usage by streaming finished pages to file.
>
> Optionally:
> - PDF Forms ?
> - Archive format ?
> - Signatures ?
>
> Enjoy,
>
> I would welcome additional tests/demos, suggestions, bugreports,  
> improvements or patches.
>
> Michael.


Great, thank you!

Jesus Reyes A.




More information about the Lazarus mailing list