[gelöst] Lazreport zu PDF

Rund um die LCL und andere Komponenten
Antworten
Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

[gelöst] Lazreport zu PDF

Beitrag von Michl »

Hallo allerseits,

ich würde gern PDFs aus einem Lazreport heraus erstellen. Diese sollten Unicodecharacter und vom User selbst gewählte Fonts enthalten können. Mit TfrTNPDFExportFilter (PowerPDF) funktionieren beide Ansprüche nicht.

Ich habe im englischen Forum gelesen, dass das wohl mit dem Cairo PDF exporter funktionieren tät http://forum.lazarus.freepascal.org/index.php?topic=26174.0 dazu müsste ich aber GTK für Windows installieren, was ich nicht unbedingt machen will.

Installiert habe ich den PDFCreator (PDF-Drucker). Mit diesem kann ich PDFs aus einem Lazreport erstellen, die UTF8-Chars und verschiedene Fonts enthalten. Allerdings müsste man den PDFCreator immer mit installieren und bei dem PDF-Export das Speicherziel immer händisch festlegen. Mit ersterem könnte ich noch leben mit der händischen Speicherort/-name nicht (es werden viele PDFs erstellt, die automatisch EMails beigefügt und automatisch versendet werden sollen). Die Möglichkeit der Fernsteuerung des PDFCreators habe ich bis dato noch nicht recherchiert, sondern wollte erstmal hier nach weiteren Alternativen fragen.

Wie würdet ihr das lösen?
Zuletzt geändert von Michl am So 20. Dez 2015, 17:49, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazreport zu PDF

Beitrag von wp_xyz »

Bauen diese pdf-Drucker nicht alle auf ghostscript auf? Diesen kann man per Kommandozeile bzw. per Script steuern.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Lazreport zu PDF

Beitrag von Michl »

Der PDFCreator hat Ghostscript mMn nicht mit installiert, zumindest ist mir das nicht bewusst (andere PDF-Drucker, die ich mal getestet hatte, hatten das schon).

Aber generell ist das schon mal eine Idee, werde ich mich mal reinlesen.

Danke dafür!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Lazreport zu PDF

Beitrag von Michl »

Nach einigen Tests habe ich mich doch entschlossen, mittels Cairo Export die PDFs zu erstellen. Damit genügt es, wenn ich die DLLs weitergebe. Bei Ghostscript müsste ich das auch, habe dort aber keinen fertigen Exportfilter.

Das Ganze geht recht einfach umzusetzen (Windows):
- von irgendwo das GTK+ Paket herunterladen gtk+-bundle_2.24.10-20120208_win32.zip
- aus dem Zip die DLLs Lazarus und dem Projekt zur Verfügung stellen:

Code: Alles auswählen

freetype6.dll
intl.dll
libcairo-2.dll
libexpat-1.dll
libfontconfig-1.dll
libglib-2.0-0.dll
libgmodule-2.0-0.dll
libgobject-2.0-0.dll
libgthread-2.0-0.dll
libpango-1.0-0.dll
libpangocairo-1.0-0.dll
libpangoft2-1.0-0.dll
libpangowin32-1.0-0.dll
libpng14-14.dll
- das Package lrCairoExport in Lazarus installieren
- das PDF erstellen:

Code: Alles auswählen

  if frReport1.PrepareReport then
    frReport1.ExportTo(TlrCairoExportFilter, 'test.pdf');

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten