24. Juli 2010 10:22
Hallo,
Ich rufe FreePDFmit der Shell-Funktion auf. Das funktioniert grundsätzlich ganz gut.
Auszug aus dem Programmcode:
***********
SHELL('c:\programme\freepdf_xp\freepdf.exe','c:\NAV\pdf\navreport.ps','/a /x')
SLEEP(5000);
// Dateiname navreport.pdf wird in einen sprechenderen Namen umbenannt
IF FILE.RENAME('c:\NAV\pdf\navreport.pdf',vPDFName) THEN;
***********
Nur manchmal gibt es ein Problem:
FreePDF 4.02 gibt dann als Fehlermeldung aus:
Unable to open the initial device, quitting.
GhostScript Error 1
Fehler, kein PDF erzeugt.
Wenn ich mir das o.g. Verzeichnis anschaue sehe ich dort
navreport.ps mit z.B. 151 kb
bereits umbeanannte PDF-Datei mit 0 kb
Ich vermute mal, dass die PDF-Konvertierung noch nicht abgeschlossen war, die bereits angelegte, aber noch mit 0 kb gefüllte PDF-Datei umbenannt wurde und deshalb diese Fehlermeldung ausgegeben wurde.
Bislang habe ich hier eine Wartezeit von 5 Sekunden verwendet, überlege jetzt aber, ob es eine bessere Variante gibt z.B. über einen ReturnCode. Ich kann die Shell-Funktion mit einem ReturnCode verwenden
Returncode := Shell()
Ich vermute mal, dass der nächste Befehl danach erst ausgeführt wird, wenn der Returncode angekommen ist und damit die Befehlsausführung abgeschlossen wurde. Jetzt wäre es gut zu wissen, welche Returncodes von FreePDF denn zurückgegeben werden und hierzu habe ich leider keine Info gefunden.
Kennt jemand diese Returncodes?
Ist mein Gedankenansatz grundsätzlich ok oder gibt es Verbesserungsbedarf?
Gruß
Winfried
Zuletzt geändert von WinfriedBarz am 26. Juli 2010 11:21, insgesamt 1-mal geändert.