AGB  ·  Datenschutz  ·  Impressum  







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

Pdf erzeugen mit SynPdf

Ein Thema von andloer · begonnen am 8. Dez 2020 · letzter Beitrag vom 9. Dez 2020
 
andloer

Registriert seit: 26. Nov 2020
5 Beiträge
 
Delphi 7 Enterprise
 
#1

Pdf erzeugen mit SynPdf

  Alt 8. Dez 2020, 12:22
Hallo Zusammen,

ich versuche mit SynPDF eine Pdf mit den Komponenten meines Programms zu erzeugen.

Problem 1:
Mein ausgefülltes Memo-Feld soll auf die Pdf mit Absätzen erzeugt werden, jedoch steht alles in einer Reihe:

Delphi-Quellcode:
//Memo erzeugen
  Memo1.Lines.Add('Sie heizen aktuell mit: ' + Namealt );
  Memo1.Lines.Add('Sie wollen zukünftig heizen mit: ' + Nameneu);
  Memo1.Lines.Add('Die Warmwasserbereitung wird ' + NameWW + ' der Heizung betrieben!');
  Memo1.Lines.Add('Die Wohnfläche ihres Gebäudes beträgt: ' + FloattoStr(Wohnflaeche)+'');
  Memo1.Lines.Add('In ihrem Haus wohnen: ' + InttoStr(Personen)+' Personen');
  Memo1.Lines.Add('Baujahr des Gebäudes: ' + Bauj);
  Memo1.Lines.Add('Die Heizlast des Gebäudes beträgt: '+FloattoStr(Heizlast)+ ' Watt');
Delphi-Quellcode:
// Übergabe PDF
procedure TForm1.Button7Click(Sender: TObject);
var PDF:TPDFDocumentGDI;
metafile:Tmetafile;
Page:TPdfPage;
begin
 PDF:=TpdfDocumentGDI.Create();
 metafile:=TMetafile.Create;
 try
 PDF.Info.Author :='andloer';
 PDF.Info.CreationDate := now;
 PDF.Info.Creator:= 'andloer';
 PDF.Info.Subject := 'Delphi';
 PDF.Info.Title := ' Heizkosten Rechner ';
 Page:=PDF.AddPage;
 Page.PageLandscape:=false;
 PDF.DefaultPaperSize:=psA4;
 PDF.VCLCanvas.TextOut(100,100,Memo1.Text);
 Chart1.CopyToClipboardmetafile(true);
 metafile.assign(clipboard);
 pdf.VCLCanvas.Draw(100,200,metafile);
 PDF.SaveToFile(filename);
 finally PDF.Free;Metafile.Free end;

 Shellexecute(Handle,'Open',pchar(filename),'','',SW_Normal);

Problem 2:
Ich erzeuge beim Erstellen der PDF eine Datei die im Projektordner abgelegt wird, sobald diese jedoch einmal erstellt ist, kommt beim nächsten Durchlauf eine Fehlermeldung.
Mir ist auch nicht ganz klar wie ich das mit einem SaveDialog hinbekomme.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
  var Monat:Integer;
begin
  filename :=extractfilepath(paramstr(0)) + 'Kosten.pdf';
  for MOnat:= 1 to 12 do

  //Stringgrid beschriften

  Stringgrid1.Cells[0,Monat] :=InttoStr(Monat);
  Stringgrid1.Cells[1,0] := 'Alt';
  Stringgrid1.Cells[0,0] := 'Monat';
  Stringgrid1.Cells[2,0] := 'Neu';
end;
Habe den Quelltext zum erzeugen der PDF auch aus einem Youtube-Video, weiß also nicht, ob das so alles stimmig ist, funktioniert jedoch auf dem ersten Blick

Ich hoffe die Infos reichen aus, um eine Antwort zu finden..

Freundliche Grüße und vielen Dank vorab
André
  Mit Zitat antworten Zitat
 

 

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 13:33 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