Ghostscript批处理文件 - 执行并退出

Nak*_*nda 3 c# ghostscript

我试图在批处理文件中执行GhostScript.

batch.bat

gswin32.exe ^
  -dNOPAUSE ^
  -sDEVICE=pdfwrite ^
  -sOUTPUTFILE=output1.txt ^
  -dBatch ^
   "file1.txt" "file2.txt"

gswin32.exe ^
  -dNOPAUSE ^
  -sDEVICE=pdfwrite ^
  -sOUTPUTFILE=output2.txt ^
  -dBatch ^
   "file1.txt" "file2.txt"
Run Code Online (Sandbox Code Playgroud)

问题是当第一行执行时,它会打开GhostScript窗口.我必须手动键入退出或关闭窗口以将控件返回到父级以批量执行下一个命令.我们如何修改批处理文件以便执行ghost脚本?最初我使用Process.Start(ProcessInfo)从C#程序调用此文件.欢迎提出建议

Kur*_*fle 8

  1. 要避免Ghostscript打开窗口,请不要使用gswin32.exe.
    gswin32c.exe改用.(名称中的c表示它仅用于控制台......)

  2. 另请注意,Text文件不能作为Ghostscript的输入.
    Ghostscript只能处理PostScript,Encapsulated PostScript或PDF文件.

  3. 您可以根据需要为输出文件命名.
    但是您-sDEVICE=pdfwrite将生成PDF输出,因此.pdf如果您希望以后避免混淆,建议您使用输出文件的后缀.

  4. 拼写-dBATCH是区分大小写的.
    -dBatch不管用.
    (-dBATCH导致Ghostscript在作业的最后一页完成后返回 - 否则它将切换到交互模式并显示其GS>提示...它不是用于处理'批量输入文件',如您所假设的那样.)

  5. 批处理文件中的2个命令使用相同的输入参数.
    这意味着2个输出文件将是相同的,只是有不同的文件名.

我建议使用以下命令行方案:

gswin32.exe ^
  -dNOPAUSE ^
  -dBATCH ^
  -sDEVICE=pdfwrite ^
  -sOUTPUTFILE=output2.pdf ^
   "file1.ps" "file2.pdf" "file3.eps"
Run Code Online (Sandbox Code Playgroud)