Ghostscript 批处理文件 - 执行并退出
Posted
技术标签:
【中文标题】Ghostscript 批处理文件 - 执行并退出【英文标题】:Ghostscript Batch file - execute and quit 【发布时间】:2012-07-31 17:25:39 【问题描述】:我正在尝试在批处理文件中执行 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"
问题是当第一行执行时,它会打开 GhostScript 窗口。我必须手动键入退出或关闭窗口才能将控件返回给父级以批量执行下一个命令。 我们如何修改批处理文件以执行幽灵脚本?最初我使用 Process.Start(ProcessInfo) 从 C# 程序调用此文件。欢迎提出建议
【问题讨论】:
【参考方案1】:为避免 Ghostscript 打开窗口,请勿使用 gswin32.exe
。请改用 gswin32c.exe
。(名称中的 c是表示它仅用于控制台...)
另外,请注意 文本 文件不能用作 Ghostscript 的输入。Ghostscript 只能处理 PostScript、Encapsulated PostScript 或 PDF 文件。
您可以随意命名您的输出文件。但是您的-sDEVICE=pdfwrite
将产生 PDF 输出,因此如果您使用.pdf
后缀作为输出文件,建议您使用希望以后避免混淆。
-dBATCH
的拼写区分大小写。-dBatch
无效。
(-dBATCH
导致 Ghostscript 在作业的最后一页完成后返回 - 否则它将切换到交互模式并显示其GS>
提示...它不是用于处理“批量输入文件”,如您所见假设。)
批处理文件中的 2 个命令使用了相同的输入参数。 这意味着 2 个输出文件将相同,只是文件名不同。
我推荐使用以下命令行方案:
gswin32.exe ^
-dNOPAUSE ^
-dBATCH ^
-sDEVICE=pdfwrite ^
-sOUTPUTFILE=output2.pdf ^
"file1.ps" "file2.pdf" "file3.eps"
【讨论】:
第 4 点 - 完美运行 - -dBATCH 的拼写区分大小写。 -dBatch 将不起作用。谢谢@Kurt【参考方案2】:请改用gswin32c
。这是一个控制台应用程序,不会创建您需要手动关闭的窗口。
【讨论】:
以上是关于Ghostscript 批处理文件 - 执行并退出的主要内容,如果未能解决你的问题,请参考以下文章
GhostScript 使用 bbox 裁剪 Postscript 文件