Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

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 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


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.
Seite 3 von 6     123 45     Letzte »    

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