Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delphi PDF generation [closed]

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.

like image 567
Marius Avatar asked Jan 28 '09 11:01

Marius


2 Answers

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

like image 56
Arnaud Bouchez Avatar answered Sep 30 '22 02:09

Arnaud Bouchez


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.
like image 25
Lieven Keersmaekers Avatar answered Sep 30 '22 02:09

Lieven Keersmaekers