Hallo,
danke für die Antworten.
Das erstellen des PDF klappt einwandfrei.
Nach dem Erstellen startet das Externe Programm.
Ich möchte erreichen, wenn ich dort 'Speichern unter...' drücke, vorher der richtige Pfad zum speichern des PDF eingestellt ist.
Wie kann ich das Problem lösen ???
Gruss Oldmann
Ich habe da ein uraltes Kodefragment gefunden, das zeigt, wie man für einen Druckjob einen Dateinamen für print to file setzen kann. Vielleicht funktioniert das ja auch für den von dir verwendeten PDF-Drucker.
ACHTUNG! Der Kode ist uralt und für eine nicht
Unicode-fähige Delphi Version. Braucht also eventuell Anpassungen.
Delphi-Quellcode:
Print
to file:
uses printers;
Procedure StartPrintToFile( filename:
String );
var
CTitle:
array[0..31]
of Char;
DocInfo: TDocInfo;
begin
With Printer
Do Begin
BeginDoc;
{ Abort job just started on API level. }
EndPage( Canvas.handle );
Windows.AbortDoc( Canvas.handle );
{ Restart it with a print file as destination. }
StrPLCopy(CTitle, Title, SizeOf(CTitle) - 1);
FillChar(DocInfo, SizeOf(DocInfo), 0);
with DocInfo
do
begin
cbSize := SizeOf(DocInfo);
lpszDocName := CTitle;
lpszOutput := PChar(filename);
end;
StartDoc(Canvas.handle, DocInfo);
StartPage(Canvas.handle);
End;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
StartPrintToFile('
C:\temp\temp.prn');
try
Printer.Canvas.TextOut( 100, 100, '
Hello World.' );
finally
Printer.endDoc;
end;
end;
Der Kode wiederholt praktisch einen Teil von BeginDoc, um in der Lage zu
sein, lpszOutput auf den Dateinamen der zu erzeugenden Datei zu setzen.