Home » Tutorials » Third-Party-Komponenten » Arbeiten mit der eDocEngine VCL von Gnostice

Arbeiten mit der eDocEngine VCL von Gnostice

Mehrseitiges TIFF in PDF umwandeln

Unter Verwendung der GDI+-Bibliothek von Erik Van Bilsen
Generell ist TIFF-Handling mit der GDI+ recht kompliziert, die GDI+ library von Erik Van Bilsen macht es jedoch wesentlich einfacher. Der nachfolgende Artikel erklärt, wie Sie in Kombination mit der eDocEngine VCL mit wenig Code mehrseitige TIFF-Bilder in PDF-Dateien umwandeln können.
Im Folgenden werden der grundlegende Ablauf und einige Besonderheiten dargestellt:

  1. TIFF-Datei laden und die Seitenanzahl ermitteln:
    TIFFImage := TGPBitmap.FromFile(Dateiname);
    PageGuid := FrameDimensionPage;
    PageCount := TIFFImage.GetFrameCount(PageGuid);
  2. Eine neue gtPDFEngine erstellen und folgende Einstellungen vornehmen:
    • Dateiname angeben
    • MeasurementUnit := muPixels
    • Page.PaperSize := Custom
  3. Mit BeginDoc ein neues PDF-Dokument beginnen.
  4. Für jede Seite der TIFF-Datei folgendes wiederholen:
    1. Seite in der TIFF-Datei wählen:
      TIFFImage.SelectActiveFrame(PageGuid,I);
    2. Seitengröße auf die jeweilige Bildgröße einstellen:
      TIFFImage.GetPhysicalDimension(PageDimensions);
      gtPDFEngine1.Page.Width := PageDimensions.Width;
      gtPDFEngine1.Page.Height := PageDimensions.Height;
    3. Wenn notwendig neue Seite (NewPage) erstellen
    4. Aktuelle TIFF-Seite in eine temporäre JPEG-Datei sichern:
      TIFFImage.Save(‚temp_frame.jpg‘, TGPImageFormat.Jpeg);
    5. Dieses JPEG laden und auf die PDF-Seite zeichnen:
      JPEGImage1 := TJPEGImage.Create;
      JPEGImage1.LoadFromFile(‚temp_frame.jpg‘);
      gtPDFEngine1.DrawImage(0,0, JPEGImage1);
  5. WICHTIG: Am Ende die Dokumenterstellung mit EndDoc beenden, um das Dokument zu speichern!

Der vollständige und kommentierte Quelltext des Beispiels ist als Download verfügbar. Dieser wurde unter anderem um eine Fortschrittsanzeige sowie eine Dateiauswahl ergänzt.