FastReport VCL ist in erster Linie ein Berichtsgenerator. Auf dieser Grundlage können wir davon ausgehen, dass die Vorschau oder das Einbetten von Dokumenten anderer Formate in einen Bericht übermäßig ist. Nach den Anfragen unserer Kunden können wir aber auch die gegenteilige Meinung feststellen. Viele unserer Kunden müssen sich mit der Aufgabe auseinandersetzen alte Systeme mit den neuen zu integrieren. Ein solches System kann bereits vorbereitete Dokumente enthalten, die mit den neuen Berichten verknüpft werden müssen. Mit anderen Worten, ein Dokument in einem anderen Format in einen Bericht einbetten und anzeigen, indem neue Seiten oder Felder hinzugefügt werden.
Für solche Aufgaben haben wir in FastReport VCL 2021.3 ein neues TfrxPDFView Berichtsobjekt hinzugefügt. Dieses Objekt verwendet die Pdfium Open-Source-Bibliothek und dient zur Anzeige von PDF-Dokumenten in einem Bericht. Sie können die Bibliothek selbst erstellen oder eine fertige Lösung aus unserem FastReport VCL Installationspaket verwenden (frx_pdfium.dll und frx_pdfium_64.dll im Bin-Ordner). Nach der manuellen Erstellung müssen Sie die Bibliothek in frx_pdfium.dll für 32-Bit-Systeme und in frx_pdfium_64.dll für 64-Bit-Systeme umbenennen. Um die Bibliothek manuell zu kompilieren, benötigen Sie Visual Studio und Google depot_tools. Weitere Informationen finden Sie hier und hier.
Wie oben geschrieben, müssen Sie Pdfium nicht selbst bauen, Sie können vorbereitete Bibliotheken aus dem FastReport VCL verwenden, aber wenn Ihre Firma eine Sicherheitsbeschränkung hat und erfordert, den gesamten Quellcode auf Ihrer Seite zu bauen, verwenden Sie die Links von oben.
Das TfrxPDFView kann Dokumente sowohl auf einer als auch auf mehreren Berichtsseiten darstellen. Dabei wird die Fähigkeit der Report-Engine genutzt, um Objekte aufzuteilen. Schauen wir uns genauer an, wie man dieses Objekt verwendet und welche Möglichkeiten es bietet.
Nach der Installation der neuesten FastReport VCL 2021.3 Version sollte diese Komponente in der Komponentenpalette von Delphi im Abschnitt FastReport VCL erscheinen.
Fügen Sie einfach das TfrxPDFObject in das Anwendungsformular ein, um TfrxPDFView in Run-time zu verwenden. Wenn Sie ein neues Projekt erstellt haben, fügen Sie die TfrxReport-Komponente hinzu und doppelklicken Sie darauf, um den Berichtsdesigner aufzurufen.
Klicken Sie dann auf das PDF-Objekt in der Symbolleiste des Designers und erstellen Sie auf dem Band ein neues Objekt im Bericht, genau wie jedes andere Berichtsobjekt.
Das Objekt wurde erstellt. Danach sollte der Objekteditor erscheinen, der das Laden eines PDF-Dokuments ermöglicht.
Das TfrxPDFView ermöglicht mehrseitige Dokumente darzustellen. Das Objekt hat dafür spezielle Einstellungen.
Die DetailStretchMode Eigenschaft ist für die Anzeige des Inhaltes des Objekt-Containers verantwortlich und kann einen der folgenden Werte annehmen:
Mit FastReport VCL können Sie ein PDF-Dokument als eine Seite des PDF-Dokuments, eine Seite im Bericht für jede Seite des PDF-Dokuments darstellen.
Wir haben bereits ein PDF-Dokument erstellt und in das Band „Berichtskoprfzeile“ geladen. Dehnen Sie es nun auf die gesamte Seite der Berichtsvorlage aus, es sollte wie folgt aussehen:
Wenn wir jetzt auf die Berichtsvorschau klicken, sehen wir nur eine Seite des geladenen PDF-Dokuments, auch wenn ein Dokument mehr als eine Seite hat. Um alle Seiten anzuzeigen, müssen wir eine Reihe von Schritten durchführen.
Sie können den Bericht nun ausführen und das Ergebnis sehen.
FastReport VCL zeigt alle Seiten des PDF-Dokuments jeweils auf die Berichtsseite an.
Das TfrxPDFView-Objekt hat noch weitere Eigenschaften. Die Eigenschaft "Password" legt ein Kennwort für das PDF-Dokument fest. Die "DrawOptions"-Flags ermöglichen die Steuerung der Dokumentenanzeige.
Außerdem können Sie einen Dateinamen als Quelle für ein TfrxPDFView-Objekt verwenden, indem Sie die FileLink Eigenschaft verwenden. Und das ist noch nicht alles! Mit der neuen DataLink-Eigenschaft ist es möglich, Dokumente auch über http- und https-Protokolle zu laden.
FastReport VCL kann jetzt nicht nur PDF-Dokumente generieren, sondern diese auch innerhalb eines Berichts anzeigen!