Verständnisfrage zu TProcess

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Vbxler
Beiträge: 125
Registriert: Sa 25. Mai 2013, 07:43
OS, Lazarus, FPC: Win7_x64 (FPC:4.7.1)
CPU-Target: 32Bit

Verständnisfrage zu TProcess

Beitrag von Vbxler »

Ich habe zu TProcess folgende Frage:

Folgender Code_01 funktioniert nicht, die PDF wird nicht erstellt:
[code]
proGs.Executable := 'gs';
proGs.Parameters.Add('-sDEVICE=pdfwrite ');
proGs.Parameters.Add('-dCompatibilityLevel=1.4 ');
proGs.Parameters.Add('-dPDFSETTINGS=' + sSetting + ' ');
proGs.Parameters.Add('-dNOPAUSE ');
proGs.Parameters.Add('-dQUIET ');
proGs.Parameters.Add('-dBATCH ');
proGs.Parameters.Add('-sOutputFile=' + sDestFile + ' ' + sSourceFile);
proGs.Execute;
[/code]

Hingegen funktioniert folgender Code_02 ohne Probleme:
[code]
proGs.CommandLine:= 'gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=/home/klaus/Schreibtisch/LTE_11.pdf /home/klaus/Schreibtisch/LTE_01.pdf';
proGs.Options := proGs.Options + [poWaitOnExit, poUsePipes];
proGs.Execute;
[/code]

Kann mir jemand sagen, was an der Variante Code_01 falsch ist?

Danke

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 170
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: Verständnisfrage zu TProcess

Beitrag von Jorg3000 »

Moin!
Das SourceFile ist ein eigenständiger Parameter, wird in Code_01 aber fälschlicherweise an den OutputFile-Parameter mit angehängt.
So wird es wahrscheinlich funktionieren:

Code: Alles auswählen

proGs.Parameters.Add('-sOutputFile=' + sDestFile);
proGs.Parameters.Add(sSourceFile);
Das ursprüngliche Verketten mit einem Leerzeichen funktioniert innerhalb eines Add() nicht, weil dann der gesamte String intern in Anführungszeichen gesetzt wird und somit zu einem einzigen Parameter verschmilzt.
Grüße, Jörg

Vbxler
Beiträge: 125
Registriert: Sa 25. Mai 2013, 07:43
OS, Lazarus, FPC: Win7_x64 (FPC:4.7.1)
CPU-Target: 32Bit

Re: Verständnisfrage zu TProcess

Beitrag von Vbxler »

Danke für den Hinweis!

Da es keinen Parameter ''-sInputFile='' gibt, habe ich die Quelldatei einfach angehängt.

Das werde ich bei nächster Gelegenheit testen.

Vbxler
Beiträge: 125
Registriert: Sa 25. Mai 2013, 07:43
OS, Lazarus, FPC: Win7_x64 (FPC:4.7.1)
CPU-Target: 32Bit

Re: Verständnisfrage zu TProcess

Beitrag von Vbxler »

Vielen Dank Jorg3000!

Ich habe es eben ausprobiert und es funktioniert bestens.

Antworten