Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PDF laden und speichern = kaputtes PDF? (https://www.delphipraxis.net/81446-pdf-laden-und-speichern-%3D-kaputtes-pdf.html)

kluckweb 27. Nov 2006 15:28


PDF laden und speichern = kaputtes PDF?
 
Hallo,

ich möchte ein PDF laden und an einem anderen Ort speichern. Eigentlich nicht wild, aber irgendwie geht das PDF kaputt. Die neue Dateigröße ist immer 1KB und es ist nicht zu öffnen.

Hier mal der Quellcode:

Delphi-Quellcode:


OpenDialog1.Filter := 'PDF Dateien (*.pdf)|*.pdf';
if OpenDialog1.Execute then begin
 dataPersonendaten.Personalausweis.Edit;
 with Opendialog1 do
 OpenDialog1.Files.SaveToFile('blabla.pdf');
 showMessage('Datei erfolgreich gespeichert');
Was mache ich denn hier falsch?

Bernhard Geyer 27. Nov 2006 15:29

Re: PDF laden und speichern = kaputtes PDF?
 
Schau mal im Notepad rein was im deiner PDF steht.
Mit

Delphi-Quellcode:
OpenDialog1.Files.SaveToFile('blabla.pdf');
speicherst Du die Liste der im Opendialog selektierten Dateien.

kluckweb 27. Nov 2006 15:34

Re: PDF laden und speichern = kaputtes PDF?
 
Wenn ich das PDF im Editor aufmache steht da nur der Dateiname der alten PDF Datei drin, die ich mittels OpenDialog aufgemacht habe.

Wie kann das denn?

Neutral General 27. Nov 2006 15:37

Re: PDF laden und speichern = kaputtes PDF?
 
Is ja auch logisch...

Weiß ja nicht was
Delphi-Quellcode:
dataPersonendaten.Personalausweis.Edit;
so macht/kann aber ich glaube du lädst die Datei nichtmal wirklich...
Und Opendialog1.Files ist eine Stringlist wo nur alle Dateinamen drinstehn von den Dateien die du im Dialog makiert hast... Wenn du die speicherst hast du natürlich auch nur ne Datei mit den Dateinamen ;)

Gruß
Neutral General

sakura 27. Nov 2006 15:37

Re: PDF laden und speichern = kaputtes PDF?
 
Zitat:

Zitat von kluckweb
Wie kann das denn?

Der Code OpenDialog1.Files.SaveToFile('blabla.pdf'); speichert den Inhalt der Stringliste Files, welche die ausgewählten Dateinamen enthält, in die Datei blabla.pdf.

...:cat:...

kluckweb 27. Nov 2006 15:40

Re: PDF laden und speichern = kaputtes PDF?
 
OK, soweit zur Erklärung dazu.

Aber wie kann ich denn nun eine PDF Datei laden per OpenDialog und diese Datei dann einfach nur an einem anderen Ort speichern?
War davon ausgegangen, dass es mit diesem Befehl funktionieren müsste.

Neutral General 27. Nov 2006 15:45

Re: PDF laden und speichern = kaputtes PDF?
 
Ich weiß nicht ob du ne Klasse hast um PDFs öffnen zu können.. Wenn ja dann geht das damit bestimmt. Wahrscheinlich auch über sowas wie TPDF.SaveToFile.. Wenns nur um das reine speichern geht gibts noch zwei alternativen.. Entweder einfach die Datei kopieren mit

Delphi-Referenz durchsuchenCopyFile oder mit nem (Memory-)Delphi-Referenz durchsuchenStream öffnen und wieder woandershin speichern.

1. Beispiel

Delphi-Quellcode:
if Opendialog1.Execute then
begin
  CopyFile(Opendialog1.Filename,'Ort\NeuerDateiname.pdf',false); // true = fehlschlag wenn die datei schon existiert
end;
2. Beispiel
Delphi-Quellcode:
if Opendialog1.Execute then
begin
  MemoryStream := TMemoryStream.Create;
  MemoryStream.LoadFromFile(Opendialog1.Filename);
  MemoryStream.SaveToFile('NeuerDateiName.pdf');
  MemoryStream.Free;
end;
Gruß
Neutral General

kluckweb 27. Nov 2006 15:54

Re: PDF laden und speichern = kaputtes PDF?
 
Funktioniert super.

Danke für die Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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