Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PDF-Datei aus dem Inhalt eines VirtualStringTree erzeugen (https://www.delphipraxis.net/132616-pdf-datei-aus-dem-inhalt-eines-virtualstringtree-erzeugen.html)

Jens Hartmann 16. Apr 2009 08:21


PDF-Datei aus dem Inhalt eines VirtualStringTree erzeugen
 
Hallo zusammen,

ich habe mal eine Frage zum Thema PDF Dokumente.
Gibt es eine Möglichkeit den Inhalt eines VirtualStringTree, inkl. farblicher Tabellenstruktur, (manche Zeilen sind gefärbt) als PDF-Dokument zu speichern.

Schön wäre es natürlich, wenn diese dann auch auf das Papierformat A4 angepasst würde, und auf der ersten Seite ein Tabellenkopf (Dokumententitel, Verfasser usw.) mit erzeugt würde.

Gruß Jens

Bernhard Geyer 16. Apr 2009 08:28

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Zitat:

Zitat von Jens Hartmann
Gibt es eine Möglichkeit den Inhalt eines VirtualStringTree, inkl. farblicher Tabellenstruktur, (manche Zeilen sind gefärbt) als PDF-Dokument zu speichern.

Ja gibt es. Du mußt es nur selbst Programmieren. Am besten über einen Reportgenerator der als Ausgabemedium auch PDF unterstützt. Ich glaube nicht das es aufgrund dieser speziellen Anforderungen fertige Lösungen gibt.

Jens Hartmann 16. Apr 2009 08:34

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Ich will ja auch keine fertige Lösung.

Was ich brauchte, wären eventuell Hinweis, wie ich das angehe, welche Komponenten ich nehmen kann usw. usw.
Ich muss leider zugeben, das ich damit noch gar nichts gemacht habe.

Ich würde gerne damit anfangen, eine Textdatei als PDF zu speichern, und dann Stück für Stück an das VST zu gehen. Das Problem, ich weiß leider nicht genau womit und mit was ich da am besten anfange.

Eine alternative wäre z.B. auch das ganze nach Excel zu exportieren, allerdings habe ich halt das bedenken, das nicht jeder Excel zur Verfügung hat, und bei PDF ist das ja nun kein Problem. Außerdem, kann man das PDF vor Änderungen schützen.

Gruß Jens

Bernhard Geyer 16. Apr 2009 08:46

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Zitat:

Zitat von Jens Hartmann
.. Außerdem, kann man das PDF vor Änderungen schützen.

Du meinst aber nicht den Schutz den man mit geeigneter SW in 0,1 Sekunden auf jedem PC löschen kann?

Jens Hartmann 16. Apr 2009 08:54

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Doch den meine ich, aber mir reicht der aus. Ich weiß, man kann jeden Schutz knacken.
Darum geht es mir aber nicht. Ich will das Dokument nur vor unabsichtlichen Änderungen schützen. Und wenn jemand so eine Software nutzen tut, ist es ja definitiv Absicht. Wird aber nicht vorkommen, weil es absolute nicht benötigt wird. Das PDF soll nur zur Info sein, und soll später automatisch als E-Mail versendet werden. So eine Art LogFile in tabellarischer Form und graphisch anspruchsvoll gehalten.

Gruß Jens

Luckie 16. Apr 2009 09:12

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Dann könntest du auch eine HTML-Datei erzeugen mit integriertem Stylesheet.

Jens Hartmann 16. Apr 2009 09:19

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Wäre mir eigendlich egal, ich muss folgendes realisieren.

In dem VST werden technische Ereignisse angezeigt, jetzt möchte der Kunde das bei bestimmten Ereignissen eine E-Mail
(Das mit der E-Mail usw, sowie die Ereignissbehandlung habe ich schon realisiert)
an den Objektmanager gesendet wird, die...

1. graphisch die Anforderungen vom VST erfüllt.
2. gedruckt werden kann.
3. gespeichert werden kann.

Das Format, wird mir nicht vorgegeben. Das einzige, was ich realisieren möchte, das das bedrachten, speichern und drucken ohen kostenpflichtige Zusatzsoftware realisierbar ist.

Gruß Jens

generic 16. Apr 2009 09:21

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Bin mir gerade nicht sicher, aber ich meine das der VST als Bitmap exportiert werden kann.

KrasserChecker 16. Apr 2009 10:33

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Für die Generierung von PDF gibt es das OpenSource-Paket PowerPDF. Das funktioniert ganz hervorragend auch für Delphi.

Den "Export" der Daten aus dem VST müsstest Du natürlich trotzdem selbst machen. Aber vielleicht wäre es einfacher die Daten direkt in "PowerPDF" zu füttern und so eine "echte" PDF-Datei zu machen (und nicht bloß einen gewrappten Screenshot).

Jens Hartmann 16. Apr 2009 11:04

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Das hört sich doch alles schon recht vielversprechend an. Jetzt habe ich natürlich wie immer das Problem, welchen Weg ich nutzen soll.

Was mich mal interessieren würde...

Zitat:

Zitat von KrasserChecker
Den "Export" der Daten aus dem VST müsstest Du natürlich trotzdem selbst machen. Aber vielleicht wäre es einfacher die Daten direkt in "PowerPDF" zu füttern und so eine "echte" PDF-Datei zu machen (und nicht bloß einen gewrappten Screenshot).

Von der Sache her, finde ich das gut. Ich nutze den VST halt wegen seiner Geschwindigkeit. Die Frage wäre halt jetzt, wie sich meine Programm verhält, wenn ich parallel zum VST diesen PowerPDF laufen lassen. Daten können z.B. im Sekundentakt kommen, aber auch in größeren Abständen. Ich denke ein Datenaufkommen von 4000 Ereignissen am Tag sollte aber schon realisierbar sein. Ansonsten würde der File eh völlig unübersichtlich.

Die Daten liegen in String´s usw. vor. Hier mal der Code wo ins VST geschrieben wird. Ich müsste dann ja wahrscheinlich dort auch die Anbindung an PowerPDF machen.

Delphi-Quellcode:
  VST.BeginUpdate;
  Daten := EreignisDaten.Create;
  with Daten do
  begin
    Daten.ID := 1;
    Daten.LfdNr := 1
    Daten.Datum := 12.04.2009;
    Daten.Uhrzeit := 19:15:00;
    Daten.Ereignis := 'Störung';
    Daten.Teilnehmer := 'Kühlung';
    Daten.Bereich := 'Priorität 1';
  end;
  VST.AddChild(nil, Daten);
Gruß Jens

Jens Hartmann 16. Apr 2009 12:06

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Ich habe mal im DF ein CrossPost angelegt, um eventuell an mehr Informationen zu kommen.

Gruß Jens

nahpets 16. Apr 2009 12:51

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Hallo,

wann soll das PDF erstellt werden? Bei jedem Ereignis oder einmal am Tag?
Bei bestimmten Ereignissen bedeutet für mich, dass genau dann das PDF erstellt wird und nicht permanent, nur so für den Fall, dass es ja eventuell gebraucht werden könnte.

Meine Vorstellung wäre hier:

Ereignis tritt ein.
Einmal durch den VST und alles als PDF ausgeben, was benötigt wird.

PowerPDF sollte da gut geeignet sein, schau es Dir aber bitte zuerst einmal (losgelöst von der Aufgabenstellung) an und entscheide dann, ob es das Gewünschte leisten kann.

HTML wäre hier aber auch nicht schlecht, das als HTML-Email und der Anwender sieht sofort in der Mail, was ihn (hoffentlich) interessiert, kein Spamfilter hält Dir 'nen Anhang fest, kein Anhang kann zu groß werden und der Anwender muss auch nicht erst den Anhang speichern, um Ihn dann zu öffnen. Okay: Der Mailclient muss HTML können ;-)

Delphi-Quellcode:
Procedure OnEreignisIrgendwasOderSo;
Var
     slHTML : TStringList
     i     : Integer;
begin
  slHTML := TStringList.Create;
  // Hier den Header der HTML-Seite bauen...
  slHTML.Add('<html>');
  slHTML.Add('<head>');
  slHTML.Add('<link rel="stylesheet" type="text/css" href="VST.css"');
  slHTML.Add('</head>');
  slHTML.Add('<body>');
  slHTML.Add('<table>');
  slHTML.Add('<tr>');
  slHTML.Add('<th>ID</th>');
  slHTML.Add('<th>LfdNr</th>');
  slHTML.Add('<th>Datum</th>');
  slHTML.Add('<th>Uhrzeit</th>');
  slHTML.Add('<th>Ereignis</th>');
  slHTML.Add('<th>Teilnehmer</th>');
  slHTML.Add('<th>Bereich</th>');
  slHTML.Add('</tr>');
  // Hier einmal durch den VST laufen und je Child
  for i := 0 to VST.Count do begin //oder so ähnlich
    slHTML.Add('<tr class="' + Ereignis + '">'); // Hierzu ein passendes Stylesheet bauen
    slHTML.Add('<td align="right">');
    slHTML.Add(IntToStr(Daten.ID));
    slHTML.Add('</td>');
    slHTML.Add('<td align="right">');
    slHTML.Add(IntToStr(Daten.LfdNr));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(DateToStr(Daten.Datum));
    slHTML.Add('</td>');
...
    slHTML.Add('<td>');
    slHTML.Add(Daten.Bereich);
    slHTML.Add('</td>');
    slHTML.Add('</tr>');
  end;
  slHTML.Add('</table>');
  slHTML.Add('</body>');
  slHTML.Add('</html>');

  // hier slHTML speichern und als Mail verschicken, Lösungen solltest Du dazu im Forum finden.


  slHTML.Free;
end;
Stylesheet vst.css
Code:
.Stoerung     { background-color : #ff0000; }
.AllesInButter { background-color : #00FF00; }
.IchBinBlau   { background-color : #0000ff; }
.AllesGrau    { background-color : #999999; }
Hier für jedes Ereignis eine entsprechende Klasse einfügen, dann funktioniert das mit
Delphi-Quellcode:
slHTML.Add('<tr class="' + Ereignis + '">');
allerdings dürfen die Ereignisse dann keine Umlaute enthalten.

Das Aussehen lässt sich so an Kundenwünsche anpassen, ohne noch mal das Programm zu ändern, was bei PDF nicht geht.

XML und XSLT wäre hier natürlich auch noch eine Möglichkeit, die ähnlich einfach zu implementieren sein dürfte.

Jens Hartmann 16. Apr 2009 13:22

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Stephan,

finde ich ne coole Idee, werde das aufjedenfall mal auprobieren. Ich häng mal eine Screenshot von meinem Programm an.
Ist es möglich die HTML Datei so ähnlich aussehen zu lassen wie das VST in der Abbildung.

Zitat:

Zitat von nahpets
wann soll das PDF erstellt werden? Bei jedem Ereignis oder einmal am Tag?

Das möchte ich in den Konfiguraionen meines Programms einstellen können. Möglich solle sein...

1. 1 mal Nachts z.B. die Ereignisse vom vergangenen Tag
2. Bei gewissen Ereignissen sofort, aber nur das vorher in der Konfiguration angegeben Ereignis(Also nur eine Zeile aus dem VST)

Gruß Jens

nahpets 16. Apr 2009 13:32

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Hallo,
Zitat:

Zitat von Jens Hartmann
Ich häng mal eine Screenshot von meinem Programm an.
Ist es möglich die HTML Datei so ähnlich aussehen zu lassen wie das VST in der Abbildung.

ja, Du brauchst nur im Stylesheet für jedes Ereignis eine entsprechende Klasse. Mit den Farben muss Du halt rumprobieren, bis es passt oder Dir die RGB-Werte des VST nehmen und dann ins Stylesheet übernehmen.
Für die Ereignisse brauchst Du eine "passende" Übersetzung, damit die Namen CSS-konform werden.

Hast Du eine Liste der Ereignisse in einer Stringliste oder so?

Dann wird halt aus
Code:
.Stoerung     { background-color : #ff0000; }
.AllesInButter { background-color : #00FF00; }
.IchBinBlau   { background-color : #0000ff; }
.AllesGrau    { background-color : #999999; }
Code:
.Ereignis1 { background-color : #ff0000; }
.Ereignis2 { background-color : #00FF00; }
.Ereignis3 { background-color : #0000ff; }
.Ereignis4 { background-color : #999999; }
und aus
Delphi-Quellcode:
slHTML.Add('<tr class="' + Ereignis + '">'); // Hierzu ein passendes Stylesheet bauen
wird dann
Delphi-Quellcode:
slHTML.Add('<tr class="Ereignis' + slEreignisliste.IndexOf(Ereignis) + '">');

Jens Hartmann 16. Apr 2009 13:42

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Ahhhhhhh, ja,

ich glaube ich versteh. Muss das aber erstmal ausprobieren. Also erstmal allerbesten Dank. Werde die Vorschläge mal durcharbeiten, wobei ich glaube das mit dem HTML nicht der schlechteste ist.

Ich muss das aber erstmal programmieren und ausprobieren, da ich damit bis jetzt noch nichts gemacht habe.

Gruß Jens

Luckie 16. Apr 2009 13:46

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe so eine Logdatei mal mit XML und XSL realisiert. Da konnte man dann sogar nach bestimmten Einträgen filtern.

Jens Hartmann 16. Apr 2009 13:55

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Ihr macht mich glücklich, das wäre natürlich noch besser, aber jetzt tritt wieder mein Problem aus, was ist jetzt für mich die beste und vorallem für den Kunden die schönste Lösung.

Oh, man. ??????

Muss das glaube ich erstmal alles probieren. Hast du eventuell mal ein Beispiel,[EDIT] Sorry da war ja eins dran
[EDIT][ALT]das ich mal sehe, wie so was in XML aussehen könnte. Das kann ich mir momentan alles nicht so vorstellen.

Gruß Jens

Luckie 16. Apr 2009 14:23

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Da die XML-Datei nicht großartig verschachtelt ist, kannst du das gnaze einfach mit einer StringListe machen, ich glaube, so hab eich das damals auch gemacht.

Jens Hartmann 16. Apr 2009 14:43

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Ich muss mir das erstmal alles ansehen. Ich habe bislang noch nichts mit XML gemacht. Die Frage wäre nur, ich habe die Daten in einer Datenbank, kann ich nicht direkt irgendwas von den vielen Möglichkeiten direkt aus der Datenbank erstellen lassen, so eine Art Reportdatei die so aussieht.

Gruß Jens

fkerber 16. Apr 2009 14:49

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Hi!

Du kannst natürlich auch einen Reportgenerator wie z.B. RaveReport nutzen, um damit dann gleich eine PDF-Datei erstellen zu lassen (ich glaube es geht direkt nach PDF, ganz sicher bin ich mir nicht)


Ciao, Frederic

Jens Hartmann 16. Apr 2009 21:50

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Zitat:

Zitat von fkerber
Du kannst natürlich auch einen Reportgenerator wie z.B. RaveReport nutzen, um damit dann gleich eine PDF-Datei erstellen zu lassen (ich glaube es geht direkt nach PDF, ganz sicher bin ich mir nicht)

Also momentan sitze ich an der HTML Lösung.

Parallel dazu, würde mich allerdings die Sache mit den Reports mal Interessiere. Hab mal ein bißchen Gegoogled und kann momentan allerdings noch nicht so richtig erkennen, welche Komponente da wohl das richtige wäre.

Gefunden habe ich RaveReport, PowerPDF und FastReport. Außerdem kann ich mich schwach an die BDE erinnern, da gab es mal unter Delphi 5 noch QuickReports. Mit QuickReports, habe ich schon mal gearbeitet, diese Komponente scheint aber unter D2007 nicht mehr vorhanden zu sein.

Am liebsten wär mir natürlich eine kostenlose Komponente, ist aber kein muss.

Vieleicht kann mir ja jemand mal eine Empfehlung über eine Kompo, evtl. Deutschsprachige Anleitung oder ein Tutorial geben.

Gruß Jens

Jens Hartmann 17. Apr 2009 21:45

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Guten Abend erstmal,

ich habe mir jetzt mal die Komponente PowerPDF geladen, und woltte die gerne installieren. Leider meckert Delphi, das die Komponente VisualClx fehlt. Beim suchen im Internet, bin ich darauf gestoßen, das die Funktion mit CLX unter der Personal Edition wohl nicht geht.

Da ich aber die Professional Version habe, müsste das doch eigendlich funkti0nieren. Wo bekomme ich diese Komponente her oder was muss ich machen um PowerPDF zu installieren.

Gruß Jens

mkinzler 17. Apr 2009 22:05

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Welche DelphiVersion hast du? Ab D2006 ist CLX nicht mehr dabei
Schau dir mal VPE an

Jens Hartmann 19. Apr 2009 12:27

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Zitat:

Zitat von mkinzler
Welche DelphiVersion hast du? Ab D2006 ist CLX nicht mehr dabei

Ich habe D2007, dann ist das ja klar, also die VPE ist aufjedenfall total interessant.

Habe das jetzt mit dem HTML soweit hinbekommen, das wird eine meiner Lösungen werden, die ich in mein Programm integrieren will.

Allerdings habe ich mal eine Frage, ich habe folgende Page mal durchgearbeitet,
Style

Daraus müsste zu schließen sein, das folgender Code mir eine Zeile in Roter Schrift in meine HTML-Dokument schreibt.
:gruebel:
Delphi-Quellcode:
  slHTML.Add('<td style="color:#ff0000;">Firma hartmann + uebach Nachrichtentechnik</td>');
Leider aber nicht. Der Text wird zwar geschrieben, aber nur in Schwarz. Was mach ich denn falsch.
:gruebel:
Genauso, müsste ja folgende Zeile Rote Schrift auf Schwarzem Hindergrund liefern, auch das geht nicht.

Delphi-Quellcode:
  slHTML.Add('<td style="color:#ff0000; background-color:#000000">Firma hartmann + uebach Nachrichtentechnik</td>');
Über eine Idee, wie ich das gelößt bekomme, würde ich mich sehr freuen. :-D

Gruß Jens

nahpets 20. Apr 2009 10:00

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Hallo,

td ist keine Zeile, sondern eine Spalte.

Erstell' bitte mal eine komplette HTML-Seite und häng' die hier dran, mit den "Einzeilern" kann ich Dir da auf die Schnelle nicht sagen, wo es klemmt.

Luckie 20. Apr 2009 10:41

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Eine HTML-Tabelle sieht wie folgt aus:
Code:
<table>
  <th><td>Überschtrift Spalte 1</td><td>Überschrift Spalte 2</td></th>
  <tr><td>1. Zeile 1. Spalte</td><td>1. Zeile 2. Spalte</td></tr>
  <tr><td>2. Zeile 1. Spalte</td><td>2. Zeile 2. Spalte</td></tr>
</table>
Ich würde übriges mit CSS arbeiten. Wenn du keine extra CSS-datei mitliefern willst, kannst du den Stylesheet auch an den Anfang der HTML-Datei schreiben. Damit kannst du an einer zentralen Stelle die Formatierung anpassen und der Code wird auch schlanker.

DeddyH 20. Apr 2009 10:55

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Zitat:

Zitat von Luckie
Code:
<th><td>Überschtrift Spalte 1</td><td>Überschrift Spalte 2</td></th>

War das nicht so?
Code:
<tr><th>Überschrift Spalte 1</th><th>Überschrift Spalte 2</th></tr>

Luckie 20. Apr 2009 10:57

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Es war nicht nur so, es ist sogar noch so. ;) Danke für die Korrektur.

DeddyH 20. Apr 2009 10:58

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Dann bin ich doch noch nicht ganz verkalkt :lol:

Jens Hartmann 20. Apr 2009 18:47

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Hallo zusammen,

Also erstmal danke für die antworten,

Zitat:

Zitat von Lucki
Ich würde übriges mit CSS arbeiten.

Will ich natürlich machen, aber zum ausprobieren finde ich es so besser, weil ich dann alles sehe, die Styls anschließend auszulagern, sollte ja kein Problem darstellen.

Hier mal mein aktueller Code und im Anhang das Ergebnis. Was ich noch nicht so richtig hinbekomme ist...

1. Die Farbe der Schriftart.
3. z.B. eine Leerzeile zwischen der Überschrift und der Tabellenüberschrift.

Delphi-Quellcode:
Procedure TForm1.HTMLErzeugen;
Var
  slHTML : TStringList;
  i : integer;
begin
  QryHTML.Close;
  QryHTML.SQL.Text := 'SELECT * FROM MB100';
  QryHTML.Open;

  slHTML := TStringList.Create;

  slHTML.Add('<html>');
  slHTML.Add('<head>');
  slHTML.Add('<link rel="stylesheet" type="text/css" href="VST.css"');//werde natürlich hier eine Css-Datei einfügen

  slHTML.Add('<td style="color:#ff0000;">Firma hartmann + uebach Nachrichtentechnik</td>');
  slHTML.Add('</head>');

  slHTML.Add('<body>');

  slHTML.Add('<table border="0" style="border-collapse:separate;"'+
    'width="100%" style="'+
    'border-left:5px solid #ff0000;border-right:5px solid #ff0000;'+
    'border-top:5px solid #ff0000;border-bottom:5px solid #ff0000;>');
 
  slHTML.Add('<caption style="caption-side:top;">Protokolldatei vom: '+DateTimeToStr(Now)+' </caption>');

  slHTML.Add('<tr>');
  slHTML.Add('<th align="left">ID</th>');
  slHTML.Add('<th align="left">LfdNr</th>');
  slHTML.Add('<th align="left">Datum</th>');
  slHTML.Add('<th align="left">Uhrzeit</th>');
  slHTML.Add('<th align="left">Ereignis</th>');
  slHTML.Add('<th align="left">Teilnehmer</th>');
  slHTML.Add('<th align="left">Bereich</th>');
  slHTML.Add('<tr>');

  //slHTML.Add('<tr class="' + Ereignis + '">'); // Stylesheet wird hier später eingefügt.

  for i := 0 to QryHTML.RecordCount do
    begin

    slHTML.Add('<td>'); // align="left">');
    slHTML.Add(IntToStr(QryHTML.FieldByName('ID').AsInteger));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(IntToStr(QryHTML.FieldByName('LfdNr').AsInteger));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(DateToStr(QryHTML.FieldByName('Datum').AsDateTime));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(DateToStr(QryHTML.FieldByName('Uhrzeit').AsDateTime));
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(QryHTML.FieldByName('Ereignis').AsString);
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(QryHTML.FieldByName('Teilnehmer').AsString);
    slHTML.Add('</td>');
    slHTML.Add('<td align="left">');
    slHTML.Add(QryHTML.FieldByName('Bereich').AsString);
    slHTML.Add('</td>');
    slHTML.Add('</tr>');

    QryHTML.Next;
    end;

  slHTML.Add('</table>');
  slHTML.Add('</body>');
  slHTML.Add('</html>');

  slHTML.SaveToFile('C:\Test.html');

  slHTML.Free;
end;
Vieleicht kann mir ja jemand sagen, woran das legen kann.

Gruß Jens

teebee 20. Apr 2009 19:09

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Auf den ersten Blick fällt mir auf, dass Deine Tabellenzelle mit der Überschrift 1. im Kopf der HTML-Datei steht (weiß gar nicht, ob das schlimm wäre, hab ich noch nie probiert) und 2. ohne entsprechende Tabelle (<table><tr>...) So wird der Style nicht beachtet.

Gruß, teebee

Jens Hartmann 20. Apr 2009 21:28

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal noch der Anhang, den hatte ich wohl vergessen.

Gruß Jens

nahpets 21. Apr 2009 10:26

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Hallo,

habe die HTML-Datei mal überarbeitet hier drangehangen.

Unter http://validator.w3.org/#validate_by_input kannst Du Deine HTML-Ausgabe auf Korrektheit prüfen.

Jens Hartmann 21. Apr 2009 12:45

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Das ist so wie ich mir das vorstelle, aber wie kann ich mir jetzt anschauen, wie Du das gelößt hast.

Gruß Jens

nahpets 21. Apr 2009 14:00

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Hallo,

Du kommst nicht dran vorbei, per Programm die entsprechenden HTML-Tags... zu schreiben.

Beim Header musst Du ja nur die vorhandenen Programmausgaben durch die von mir gemachten ergänzen und das fehlende <tr> bei der Ausgabe einer einzelnen Zeile hinzufügen.
Eigentlich ist ja alles bis zur "Leerzeile" (<tr><td colspan="7"><hr /></td></tr>) konstant und den Rest hattest Du doch schon (fast) fertig.

Die Änderungen habe ich nur in der HTML-Datei gemacht, mit Programmcode kann ich da nicht dienen.

Jens Hartmann 21. Apr 2009 14:25

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Ich will ja auch kein Programmcode von Dir, aber in dem Code '#30', weiß ich nicht wo der Fehler ist.

nahpets 21. Apr 2009 14:45

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Delphi-Quellcode:
 slHTML.Add('<link rel="stylesheet" type="text/css" href="VST.css"');//werde natürlich hier eine Css-Datei einfügen
da fehlt ein /> am Ende.
Delphi-Quellcode:
slHTML.Add('<td style="color:#ff0000;">Firma hartmann + uebach Nachrichtentechnik</td>');
geht im Header nicht. Folgendes geht:
Delphi-Quellcode:
slHTML.Add('<title>Firma hartmann + uebach Nachrichtentechnik</title>');
Delphi-Quellcode:
slHTML.Add('<table border="0" style="border-collapse:separate;"'+ 
    'width="100%" style="'+ 
    'border-left:5px solid #ff0000;border-right:5px solid #ff0000;'+ 
    'border-top:5px solid #ff0000;border-bottom:5px solid #ff0000;>');
da fehlt vor dem > ein ".
Delphi-Quellcode:
  for i := 0 to QryHTML.RecordCount do
    begin

    slHTML.Add('<td>'); // align="left">');
Hinter dem
Delphi-Quellcode:
begin
fehlt ein
Delphi-Quellcode:
slHTML.Add('<tr>');
Hatte gedacht, dass die Kommentare, die ich in den HTML-Text eingefügt habe, als Erläuterung ausreichend gewesen wären.

Jens Hartmann 21. Apr 2009 15:03

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Zitat:

Zitat von nahpets
Hatte gedacht, dass die Kommentare, die ich in den HTML-Text eingefügt habe, als Erläuterung ausreichend gewesen wären.

Haben Sie auch. Ich hatte mich nur gefragt, was der Anhang, in deinem letzten Post mir zeigen sollte. Ich glaube ich bin momentan ein bißchen verwirrt. :gruebel:

Werde das jetzt alles nochmal in Ruhe durcharbeiten.

Danke trotzdem

Gruß Jens

Jens Hartmann 24. Apr 2009 21:53

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

habe jetzt nochmal an der HTML Seite gebastelt. Leider bekomme ich nicht das gewünschte Ergebnis. Woran kann das liegen. In folgendem Link, ist das mit dem Titel auch noch mal beschrieben, klappt aber bei mir leider nicht. Hat da jemand eine Idee?

SelfHTML

Hier mal mein Code...

Delphi-Quellcode:
  slHTML.Add('<head>');
  slHTML.Add('<link rel="stylesheet" type="text/css" href="VST.css">');
  slHTML.Add ('<link rel="shortcut icon" type="image/x-icon" href="C:\Test.ico">');
  slHTML.Add('<title>hartmann uebach Nachrichtentechnik GmbH</title>');
  slHTML.Add('</head>');
Im Anhang habe ich mal die HTML seite die durch mein Programm erzeugt wird. Es fehlen aber das icon und der Titel und das ist halt das was ich nicht versteh.

Gruß Jens

Mithrandir 24. Apr 2009 22:05

Re: PDF-Datei aus dem Inhalt eines VirtualStringTree erzeuge
 
Zitat:

Zitat von Jens Hartmann
Im Anhang habe ich mal die HTML seite die durch mein Programm erzeugt wird. Es fehlen aber das icon und der Titel und das ist halt das was ich nicht versteh.

Wieso, steht doch alles drin? Hä... :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 Uhr.
Seite 1 von 2  1 2      

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