AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PDF-Komponente(n) gesucht

Ein Thema von blackFirefly · begonnen am 22. Aug 2019 · letzter Beitrag vom 3. Sep 2019
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#1

AW: PDF-Komponente(n) gesucht

  Alt 24. Aug 2019, 08:07
Tja, der OP hatte allerdings was von Firemonkey geschrieben...

Zum oben erwähnten Shell Befehl: der benutzt halt die Anwendung, die sich für's
Drucken von PDFs registriert hat dafür. Dürfte wohl meist der Adobe Reader seib.
Nur ob das dann direkt ohne Drucker Dialog druckt musst du halt mal ausprobieren
und mittels der weiteren parameter von ShellExecute kann man i.d.R. steuern
wie die aufgerufene Anwendung angezeigt wird (minimiert...)
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#2

AW: PDF-Komponente(n) gesucht

  Alt 24. Aug 2019, 12:37
Hallo blackFirefly,

ich habe schon mit vielen PDF-Komponenten für Delphi gearbeitet. Es gibt ja inzwischen einige, z.B.

- QuickPDF
Wurde von Foxit gekauft und wird seitdem kaum noch weiterentwickelt. Der Vorteil ist, dass es überwiegend in Delphi geschrieben ist und man es direkt einbinden kann. Für die Anzeige wird inzwischen PDFium verwendet, was auch in Chrome für die PDF-Anzeige verantwortlich ist. Einfache API, aber kaum Support bei Problemen. Man wird auf die nächste Version in einem halben Jahr verwiesen, in der ein Bug dann evtl. gefixt ist (oder auch nicht).

- DynaPDF
Lässt sich als DLL in Delphi einbinden und hat liefert auch eine Dephi-Unit mit.
Mein Favorit, da es für viele verschiedene Betriebsysteme verfügbar ist und der deutsche Entwickler immer recht schnell auf Anfragen reagiert.
Man kann sowohl PDFs erzeugen als auch Anzeigen und es gibt auch einige Delphi-Beispiele. Ist aber nicht ganz so einfach zu verwenden. Man muss sich intensiver damit beschäftigen, um es würdigen zu wissen.

- PDFium
Open-Source-Variante von Foxit, wie es auch in Chrome verwendet wird. Es gibt verschiedene Einbindungen in Delphi u.a. von Andreas Hausladen, Winsoft und ggf. weitere. Suche einfach nach PDFium und Delphi.
Ob die Lizenz passt, musst Du klären. Vorteil ist, dass es nicht extra gekauft werden muss (ausser ggf. der Einbindung in Delphi) und keine hohen Folgekosten für Maintenance anfallen wie z.B. bei QuickPDF. Dafür hat man dann auch keinen direkten Support.

Andere wurden hier ja auch schon genannt wie Gnostice.

Aber die Frage ist, warum willst Du Dir das überhaupt antun? Wenn die Anzeige jetzt sowieso schon mit FastReport erzeugt wird, warum kann sie dann nicht jederzeit wieder damit aus den gespeicherten Daten generiert werden? PDF ist doch hier letztlich nur ein Druck-Format oder ein Export-Format aus Deinem Programm. Einfacher als mit FastReport wirst Du das PDF mit anderen Mitteln auch nicht erzeugen können. Das exportierte PDF anzuzeigen, sollte nicht mehr im Verantwortungsbereich Deines Programm liegen. Das macht es nur unnötig kompliziert. Meine Empfehlung wäre, eine einfache Lösung umzusetzen und überhaupt nicht mit PDF-Bibliotheken zu hantieren, wenn es nicht unbedingt notwendig ist (und das erkenne ich hier nicht).

Auch beim Druck würde ich, wie hier schon empfohlen wurden, einfach einen externen PDF-Reader aufrufen. Vielleicht kann man sogar noch einen Schritt weiter gehen, und die Datei einfach im externen Reader öffnen, ohne direkt zu drucken und dies als "Vorschau" zu deklarieren. Du sparst Dir eine Menge Ärger, wenn Du nicht alles selbst umsetzt, was andere Programme besser können.

Also: Keep it simple!
  Mit Zitat antworten Zitat
blackFirefly

Registriert seit: 25. Jun 2019
10 Beiträge
 
#3

AW: PDF-Komponente(n) gesucht

  Alt 26. Aug 2019, 07:38
Hallo zusammen,

vielen lieben Dank für eure Antworten und auch eure Meinungen zu den verschiedenen Komponenten!

Mein Problem bei FastReport ist, dass es nicht so funktioniert wie ich das gerne hätte. Mein Ziel ist eine PDF-Datei zu erstellen auf der in 2 Spalten mehrere kleine Tabellen angezeigt werden. Dabei sind die Einträge der Tabellen nicht einfach Einträge in der Datenbank. Die Anleitung von FastReport beschäftigt sich irgendwie fast immer nur damit, dass man Daten aus der DB holt und diese dann alle in der gleichen Form anzeigt. Das ist bei mir leider nicht so.
Laut der Anleitung von FastReport soll es angeblich ein Tabellen-Element geben, welches man beim Design auf dem Report plazieren kann. Aber ich weiß nicht wo das zu finden sein soll. Ist es einfach in der Firemonkey-Version nicht da?
Deswegen habe ich das was ich haben wollte jetzt ganz hässlich und umständlich mit mehreren Textelementen gelöst. Doof dabei ist nur, dass wenn ich erlaube, dass es die Textbausteine automatisch verschieben darf wenn eine Überlappung da ist, es die Elemente irgendwie ganz seltsam gegeneinander verschiebt. Aktuell habe ich es so gemacht, dass alles immer genau an dem Platz angezeigt werden soll an dem es ist, aber ich muss die Tabellen noch so ändern, dass der Inhalt dynamisch sein kann und wenn das mit der Verschiebung nicht hinhaut, dann ist das doof /:

Ein weiterer Punkt gegen FastReport ist, dass die Darstellung von gedrehtem Text nicht so ganz funktioniert (funktioniert in Delphi selbst auch nicht so richtig). Ich habe links einen Kasten (Stylingobjekt) und in diesem soll vertikal ein Schriftzug angezeigt werden. Also habe ich einen Kasten eingefügt und darauf dann eine Box mit dem Text gesetzt. Das komische ist jedoch, dass dann der Text in der Ausgabe abgeschnitten wird. Mache ich beim Design auch noch die Breite von dem Kasten mit dem Text ganz breit, dann funktioniert es. Allerdings habe ich so immer dieses Element, was mir beim Design über den anderen Elementen schwebt und das nervt irgendwie.

Allgemein hatte ich auch Probleme bei der Installation der Testversion. Der Support fragte dann nur welche Version ich jeweils nutzen würde. Da habe ich geantwortet, dass es die neueste Version von FastReport ist und die vorletzte Version von Delphi. Delphi wollte ich schon updaten, aber da die Server zu der Zeit gerade down waren konnte ich das nicht machen. Also hatte ich es nicht hinbekommen FastReport zu installieren.
Das hatte ich dem Support auch gesagt, aber da kam trotzdem nur die Antwort, dass ich doch Delphi updaten soll.
Was wäre denn gewesen, wenn ich nicht mehr die Updatesubscription für Delphi gehabt hätte und Delphi nicht hätte updaten können? Dann hätte ich noch dümmer dagestanden -.-

Das sind so die Gründe warum mir FastReport nicht so wirklich sympatisch ist. Mal schauen wie die anderen Komponenten sich schlagen ^^

Gerade probiere ich mit QuickPDF herum. Die Anzeige der PDF und das Drucken funktionieren schonmal super einfach.
Für die Anzeige habe ich einfach ne Scrollbox genommen und lade die PDF als Bild rein. Das ist zu 100% das was ich wollte, von der Seite her bin ich schonmal sehr zufrieden damit ^^
Ich brauche wirklich nur, dass man die PDF darstellt. Keine sonstigen Buttons oder Funktionen die ein PDF-Viewer hat ^^

Die Anforderung an das Programm ist eben, dass man keine anderen Programme öffnet mit denen man aus dem Programm raus geht. Deswegen ist die Version mit dem externen Viewer nicht so schön.
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#4

AW: PDF-Komponente(n) gesucht

  Alt 26. Aug 2019, 08:31
Fastreport war sonst immer bei Delphi dabei, zumindest in einer einfacheren Ausführung (Stichwort "Embarcadero Edition"). Hast Du versucht, es über GetIT zu installieren?

Einen eigenes Tabellenelement in FastReport ist mir auch nicht bekannt, aber es ist auch nicht notwendig. Wenn Deine Daten nicht als Datenbank vorliegen, kannst Du immer noch das TrfxUserdataset verwenden und dort die Felder definieren. Bei den Ereignissen gibt es OnGetValue, das dich dann nach den einzelnen Werten fragt. Mit den weiteren Ereignissen wird der Datensatzzeiger bewegt (OnFirst, OnNext etc). Dazu wirst Du bestimmt auch Beispiele finden. Wenn Du das dem Report zuordnest, hast Du eine "Datenbank" und kannst ganz normal mit FastReport arbeiten.

Gedrehter Text sollte problemlos funktionieren. Welche Elemente hast Du hier genau verwendet? Beim Textelement kannst Du z.B. "Clipped" auf False setzen, damit nichts abgeschnitten wird.

Ich habe nur gute Erfahrungen mit Fastreport gemacht. Man muss vielleicht hier und da etwas um die Ecke denken, aber die Einarbeitung lohnt sich.

Bezüglich PDF-Anzeige verstehe ich immer noch nicht, warum Du die Ausgangsdaten nicht jederzeit wieder abrufen und daraus einen Report erstellen kannst? Den Report könntest Du direkt aus dem Programm drucken und bei Bedarf ein PDF exportieren.
  Mit Zitat antworten Zitat
blackFirefly

Registriert seit: 25. Jun 2019
10 Beiträge
 
#5

AW: PDF-Komponente(n) gesucht

  Alt 26. Aug 2019, 13:13
FastReport arbeitet jeden Report in 2 Schritten ab: 1. erzeugen (Daten und Report zusammenfügen), 2. ausgeben (anzeigen, drucken, exportieren). Im ersten Schritt wird ein statisches Zwischenformat generiert, die "fp3" Datei. Man kann sie auch aus dem Viewer heraus exportieren - und importieren. Die fp3 Datei ist eine sehr gut komprimierbare XML Datei. Mein Tipp: speichere nicht PDFs sondern FP3s. Die können mit dem Viewer angezeigt, gedruckt, exportiert... werden und das auch noch lange später. Und wenn man mal ne PDF braucht, lässt man sie einfach erzeugen.
Grundsätzlich brauche ich alle Dateien als PDF. Die FP3s könnte ich wenn dann direkt in die Datenbank speichern, aber ich versuche es eigentlich immer zu vermeiden große Datein in der Datenbank abzulegen.
Da ist es dann schon eher ohne Probleme möglich Dateien bei Bedarf einfach fix nochmal aus der DB zu erstellen ^^

Fastreport war sonst immer bei Delphi dabei, zumindest in einer einfacheren Ausführung (Stichwort "Embarcadero Edition"). Hast Du versucht, es über GetIT zu installieren?
Hatte ich vorher, allerdings ist da der PDF-Export nicht enthalten /:

Einen eigenes Tabellenelement in FastReport ist mir auch nicht bekannt, aber es ist auch nicht notwendig. Wenn Deine Daten nicht als Datenbank vorliegen, kannst Du immer noch das TrfxUserdataset verwenden und dort die Felder definieren. Bei den Ereignissen gibt es OnGetValue, das dich dann nach den einzelnen Werten fragt. Mit den weiteren Ereignissen wird der Datensatzzeiger bewegt (OnFirst, OnNext etc). Dazu wirst Du bestimmt auch Beispiele finden. Wenn Du das dem Report zuordnest, hast Du eine "Datenbank" und kannst ganz normal mit FastReport arbeiten.
Das wäre einen Versuch wert! Kann ich denn damit trotzdem die erste und letzte Zeile der Tabelle anders designen?

Gedrehter Text sollte problemlos funktionieren. Welche Elemente hast Du hier genau verwendet? Beim Textelement kannst Du z.B. "Clipped" auf False setzen, damit nichts abgeschnitten wird.
Das mit dem Clipping ist ein guter Hinweis danke, das probiere ich aus!

Bezüglich PDF-Anzeige verstehe ich immer noch nicht, warum Du die Ausgangsdaten nicht jederzeit wieder abrufen und daraus einen Report erstellen kannst? Den Report könntest Du direkt aus dem Programm drucken und bei Bedarf ein PDF exportieren.
Doch das würde gehen ^^
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#6

AW: PDF-Komponente(n) gesucht

  Alt 26. Aug 2019, 14:40
Hatte ich vorher, allerdings ist da der PDF-Export nicht enthalten /:
Sicher? In der Vergleichsliste steht "PDF-Export" in der Spalte "Embarcadero-Edition":
https://www.fast-report.com/en/produ...eature-matrix/

Das wäre einen Versuch wert! Kann ich denn damit trotzdem die erste und letzte Zeile der Tabelle anders designen?
Sind das dann nicht einfach ein Header und ein Footer? Du fügst ja normalerweise keine Elemente direkt auf der Seite hinzu, sondern erstmal "Bänder", also z.B. Reporttitel und Masterdaten. Hier gibt es auch Columnheader und Columnfooter, wo Du eigene Elemente hinzufügst, die dann natürlich auch anders aussehen können.
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
172 Beiträge
 
Delphi 12 Athens
 
#7

AW: PDF-Komponente(n) gesucht

  Alt 26. Aug 2019, 15:17
Noch ein Nachtrag zum letzten Beitrag:

Ich habe mal in einem alten Projekt nachgeschaut, wo ich die Embarcadero-Edition von Fastreports verwendet habe.
Auch da gibt es ein "TfrxPDFExport", das man nur als Komponente in das Form einfügen muss und dann erscheint im Preview ein PDF-Button für den Export. Dafür allein brauchst Du also keine höhere Edition.

Un die Bänder für Tabellenheader und Footer heissen einfach "Kopf" und "Fuß".
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
637 Beiträge
 
Delphi XE6 Enterprise
 
#8

AW: PDF-Komponente(n) gesucht

  Alt 26. Aug 2019, 08:29
Aber die Frage ist, warum willst Du Dir das überhaupt antun? Wenn die Anzeige jetzt sowieso schon mit FastReport erzeugt wird, warum kann sie dann nicht jederzeit wieder damit aus den gespeicherten Daten generiert werden?
FastReport arbeitet jeden Report in 2 Schritten ab: 1. erzeugen (Daten und Report zusammenfügen), 2. ausgeben (anzeigen, drucken, exportieren). Im ersten Schritt wird ein statisches Zwischenformat generiert, die "fp3" Datei. Man kann sie auch aus dem Viewer heraus exportieren - und importieren. Die fp3 Datei ist eine sehr gut komprimierbare XML Datei. Mein Tipp: speichere nicht PDFs sondern FP3s. Die können mit dem Viewer angezeigt, gedruckt, exportiert... werden und das auch noch lange später. Und wenn man mal ne PDF braucht, lässt man sie einfach erzeugen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz