Delphi PDF generation [closed]

2019-01-16 21:29发布

问题:

We're using Fast Reports to create reports but we're not very happy with the quality of the PDFs it creates. I know we can plug in other PDF components instead of the one that comes with FastReports so my question is

What good PDF components are there out there (Free or Commercial) for Delphi? Ideally it should not require any dlls.

Edit: I bought Gnostice in the end as it had the FastReports integration, source available and a fairly good reputation. I did however find an issue (after I had bought it) with exporting multipage reports from FastReports to PDF where the component leaks memory and corrupts the output. I've reported it to Gnostice so I guess we'll see how good their support is in the next few days...

Edit 2: Gnostice came back with a fix that rectifies the memory leak and the corrupted output.

回答1:

We are using Gnostice and are very pleased with it. It allows us to print our ReportBuilder reports to PDF, HTML, XML, Excel, Gif, ...


Some minor issues we have come accross working with the component

  1. Somewhere deep in the bowels of the component, Application.Processmessages get's called. You have to make sure your code handles reëntrance.
  2. We had to set Preferences.UseImagesAsResources of the TgtDocSettings component to True to resolve AV's when printing to anything else but PDF.
  3. Probably due to the way we use the component but the first printed page was always Portrait. We had to add a call to gtRBExportInterface.Engine.Settings.Page.Orientation to set the orientation to landscape if needed.


回答2:

Use our SynPDF unit. Among its features, you can use a true TCanvas to create the PDF, and embed True Type fonts subsets. It's one of the few libraries handling Arabic languages and such (via the UniScribe API). It's fully Unicode ready, and very fast.

And it's FREE and OpenSource! Works from Delphi 6 up to Delphi XE.

http://blog.synopse.info/?q=pdf



回答3:

We use wPDF. We don't generate pdf-files directly thought - we generate different reports, and 'print' them to pdf as an alternative to printer.



回答4:

PowerPDF is free and opensource (LGPL). its realy small but effective!

PowerPDF



回答5:

Here are some (All Commercial) I came across when looking for something similar:

  • VisPDF Library - This is worth checking out and you get source.

  • PDFDoc Scout library - This is an ActiveX control and you don't get source but has some good features (good HTML to PDF conversion for example).

  • PDF Creator Pilot - Worth checking out too.

I found that the freely available ones LibHaru, PoDoFo weren't up to scratch for my requirements unfortunately.



回答6:

I've been using wPDF with QuickReports / QRDesign. Basically by converting the report to a metafile then producing the pdf from that. It also claims to have Fast Report support.



回答7:

IIPDFLib by llionsoft at: www.llion.net

Delphi library llPDFLib 3.6

llPDFLib is pure Object Pascal library to create PDF documents. This library doesn't use any DLL or external third-party software to generate PDF files. Library includes TPDFDocument component with properties and methods like Delphi's TPrinter but is designed to generate a PDF file.

Features:

  • Real Canvas.Handle (HDC)
  • Unicode support
  • Acroforms (buttons, radiobuttons, checkboxes, comboboxes, text input fields)
  • Watermarks
  • Thumbnail
  • JavaScript
  • vEncryption (40 and 128 bit)
  • Outlines (with support russian, turkish, baltic, east europe, greek, CJK languages)
  • Compression
  • Image compression(Jpeg, Flate, CCITT 3, CCITT 3 (2D), CCITT 4)
  • Hyperlink
  • Annotation(with support russian, turkish, baltic, east europe, greek, CJK languages)
  • Embedding True Type fonts (TTF and TTC)
  • Emulation of the Underline and StrikeOut font style
  • Present output into Stream for work with CGI/ISAPI applications
  • Filters for QReport,FastReport and Report Builder.
  • Set of the components for work with DBGrids
  • True Type font subset

It costs $299 US, but you get what you pay for.

alt text http://www.llion.net/images/products/llpdflib-s-mid.jpg



回答8:

There are 2 ways to create PDF reports using eDocEngine. Either you use a report builder component (like QuickReport, Rave etc) and then use the eDocEngine interface to save the contents as PDF.

The other way is to programmtically use TgtPDFDocument class and then settings it's properties and collections. This gives much finer control over features like watermarks, permissions, password security etc.