1

我正在尝试构建一个使用在 Windows 下运行的 Ghostscript 打印 PDF 文档的 shell 服务。该服务应该使用 PDF 文档的文件名运行一个简单的命令stdin,并使用相同的打印机及其设置作为上下文。

默认情况下,Ghostscript 以交互模式启动。这个想法是使用相同的 Ghostscript 进程,而不是在gswin64c.exe对服务的每个请求上运行。仅用于开发和测试Microsoft XPS Document Writer用于在所需的 XPS 文件中获取结果,该文件的名称是手动选择的。这就是我使用 Ghostscript 设备的原因mswinpr2。在生产环境中,将有另一台打印机。

启动 Ghostscript 进程的命令如下:

gswin64c.exe -dFitPage -dNOSAFER -dNOPAUSE -q setup_xps.ps

Ghostscript 代码setup_xps.ps

mark
  /NoCancel      true                       % don't show the cancel dialog
  /OutputFile (%printer%Microsoft XPS Document Writer)
  /PageSize [114.0 85.0]
  (mswinpr2) finddevice                     % select the Windows device driver
  putdeviceprops
setdevice

这样的设置是设置为的唯一方法OutputFile%printer%Microsoft XPS Document Writerv9.54gswin64c.exe在通过命令行时无法正确识别它(结果,mswinpr2打开标准打印对话框以选择打印机)。

然后,打印 PDF 文档:(test.pdf) run. 但是,打印作业仍enqueuing处于之后的状态。该showpage命令只是在输出 XPS 文档中添加一个空白页。在更新打印机的作业队列时可以看到。

问题是应该使用什么 PostScript 或 Ghostscript 命令(或另一种语言)来完成此打印作业(XPS优雅地关闭输出文件),离开正在运行的 Ghostscript 进程的交互模式以执行进一步的打印命令(test_2.pdf) run,如(test_3.pdf) run.

4

0 回答 0