AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi HTML- und RTF-Ausgabe (mal etwas komplizierter)
Thema durchsuchen
Ansicht
Themen-Optionen

HTML- und RTF-Ausgabe (mal etwas komplizierter)

Ein Thema von Opa Knack · begonnen am 6. Feb 2010 · letzter Beitrag vom 6. Feb 2010
Antwort Antwort
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#1

HTML- und RTF-Ausgabe (mal etwas komplizierter)

  Alt 6. Feb 2010, 04:41
Hallo,

ich habe das Forum (und diverse andere) nun schon seit Tagen durchsucht, aber keine praktikable Lösung gefunden. Also wende ich mich an euch und hoffe, dass auch andere schon vor dem Problem standen. Es tut mir leid, wenn ich ein wenig weiter aushole, aber ich möchte schon vorab die Lösungsansätze, die mir bisher aufgefallen sind, erläutern...

Innerhalb eines Projekts werden Daten gesammelt, die als RTF- und HTML-Ausgaben verfügbar gemacht werden sollen. Zusätzlich werden Grafiken eingebunden. Die Ausgabe erfolgt in Tabellenform, wobei zwei Spalten dargestellt werden. In der linken werden die Oberbegriffe der Daten ausgegeben, die dann in der rechten aufgelistet werden (teilweise mehrzeilig). Sollten zu einem Oberbegriff keine Daten vorhanden sein, wird dieser Punkt ausgelassen, es werden also keine "leeren" Punkte angezeigt.

Zur Erläuterung dieser "leeren" Punkte und der Ausgabemedien: Das Projekt erstellt unter anderem einen Lebenslauf. In jedem Lebenslauf kommen sehr unterschiedliche Datengruppen vor, so kann der eine vielleicht ein Studium vorweisen, der andere hingegen eine Berufsausbildung, und manch einer hat beides nicht. Im Lebenslauf soll nun nicht stehen, dass kein Studium vorhanden ist, sondern der Punkt "Studium" soll in diesem Fall gar nicht erst angezeigt werden (wäre ja sonst kontraproduktiv). Die RTF-Ausgabe soll möglich sein, da vom Benutzer her vielleicht zusätzliche Informationen eingebracht werden sollten, welche programmseitig nicht berücksichtigt wurden.

Für die HTML-Ausgabe habe ich einen Wrapper geschrieben, der CSS-Definitionen für die Formatierung beinhaltet und die Tabellen rahmenlos darstellt. Das Ergebnis ist valide.

Mein Grundgedanke war nun, eben dieses HTML-Ergebnis in ein TRichView einzulesen und danach als RTF zu speichern, was mir den Vorteil brächte, dass ich nicht zweierlei Arten von Templates pflegen müsste. Leider fällt diese Variante flach, da das TRV die CSS-Definitionen zwar akzeptiert, das gespeicherte Ergebnis aber - gelinde gesagt - absoluten Müll auswirft. Hierzu sollte erwähnt werden, dass die RTF-Datei idealerweise den Rahmen in Hintergrundfarbe darstellen sollte, da Wordpad mit der Tabelle nicht klarkommt. OpenOffice zeigt mir zwar halbwegs brauchbare Ergebnisse an, hier werden die einzelnen Tabellenzellen aber nicht in voller Breite dargestellt, so dass alleine schon Zellen, in denen nur zwei Wörter vorkommen, umgebrochen werden.

Der nächste Versuch lief über eDocEngine und den HTMLViewer. Ergebnis siehe oben...

Dann kam ich auf die Idee, einfach FreeReport zu nehmen und diesen mit VirtualTable zu "füttern" (die Daten werden nicht in einer Datenbank sondern typisiert gespeichert). Leider bin ich, was Reports angeht, nicht allzu erfahren, weshalb ich hier auch mit exessivem Googlen nicht weitergekommen bin. Ich hab's dann mit "Kryvich's Delphi Reporter" probiert, der mir persönlich sehr gut gefällt, bei dem ich aber keine Möglichkeit gefunden habe, die "leeren" Felder auszulassen (da ich hier keine Datenbänder definieren kann).

Nächste Möglichkeit war die Verwendung eines RTF-Templates, welches ich mit den Daten befülle. Hierbei kam ich aber an das Problem, dass die "leeren" Punkte von oben ja irgendwie gelöscht werden müssten und dass andere Punkte mehrfach auftreten können (z. B. im beruflichen Werdegang, bei dem in der linken Spalte der Zeitraum aufgelistet wird und in der rechten die dazugehörige Station). War - zumindest für mich - auch nicht durchführbar.

Zu guter Letzt bin ich, nachdem ich nun langsam aber sicher verzweifele, auf die Notlösung gekommen, auf die RTF-Ausgabe zu verzichten und statt dessen den Webbrowser als Editor zu verwenden und nach einer möglichen Bearbeitung (das war der Hintergrund der RTF-Variante) als PDF auszudrucken. Diese Lösung ist zwar halbwegs praktikabel, aber meines Erachtens nach eigentlich ein No-Go, da ich eigentlich auf den Browser verzichten wollte. Nebenher ist die Bearbeitung eines Textes im Browser auch nicht unbedingt mit der in einer Textverarbeitung vergleichbar, was eventuell weniger computererfahrene Benutzer abschrecken könnte.

Ach ja, was ich auch schon probiert habe, was sogar (mit sehr viel Geduld) funktioniert, ist, die RTF-Datei in ihre Einzelbestandteile zu zerlegen und dann schrittweise nach Bedarf zusammenzufügen. Das ist aber extrem aufwändig, bedeutet bei unterschiedlichen Templates eine gigantische Fehlerquelle und ist alles andere als professionell.

So, langer Text, kurzer Sinn:

Hat jemand eine Idee, wie ich das hinbekommen könnte? Ich bin für jeden Hinweis dankbar.

Gute Nacht
Opa
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: HTML- und RTF-Ausgabe (mal etwas komplizierter)

  Alt 6. Feb 2010, 06:51
Weil du ja eh, mit HTML arbeitest, würde ich den User die HTML bearbeiten lassen. Das geht auch etwas komfortabel.
Wir haben mal eine HTML-Editor-Komponente (für die notwendigsten Dinge geschrieben). Den findest du hier.
Im Anhang findest du einen kleinen Screeny.
Miniaturansicht angehängter Grafiken
bsp_332.png  
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  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 14:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz