使用 Ghostscript 9.15 将 PDF 转换为 PCL

MoG*_*MoG 1 pdf printer-control-language ghostscript

要求是使用嵌入的宏将 PDF 转换为 PCL(目前正在 Windows 上测试,但我需要在应用程序中使用此运行时并从 UNIX 打印它)。该宏稍后将在另一个文档中用于嵌入此裁剪图像并打印在单个页面上。我将使用 PCL 转义码来调用 MacroNumber,然后将打印图像。(您可以将其视为徽标图像。)

我可以使用 CropBox 将带有空格的 PDF 转换为没有任何空格的 PDF。

"c:\progra~1\gs\gs9.15\bin\gswin64.exe" -o _sourcePDFcropped.pdf \
    -sDEVICE=pdfwrite -c "[/CropBox [1 140 320 650] /PAGES pdfmark" \
    -f _sourcePDF.pdf
Run Code Online (Sandbox Code Playgroud)

但是,当我将其转换_sourcePDFcropped.pdf为 PCL 时,这仍然会添加空格。

"c:\progra~1\gs\gs9.15\bin\gswin64c.exe" -dBATCH -dNOPAUSE \
   -sDEVICE=pxlcolor -g100x200 -sOutputFile=_sourceFedGroundCroppedTest.pcl \
   -f _sourceFedGroundCropped.pdf
Run Code Online (Sandbox Code Playgroud)

我尝试使用MKPCL ,它完成了这项工作。因为它没有太多支持,我正在尝试使用 Ghostscript。

MKPCL.EXE -c4 -t -m 100 -p Image.jpg Image.MAC
Run Code Online (Sandbox Code Playgroud)

我还尝试了内部使用 Ghostscript 的 ImageMagick。所以我猜测,如果我在 GS 中使用正确的开关,我应该能够实现我的目标。

输入PDF文件:点击这里

PS:我在 Stackoverflow 上看到了其他 PDF 到 PCL 的查询,其他人更直接地 PDF 到 PCL。我的是裁剪PDF,输出应该是PCL。

问题继续:链接

Kur*_*fle 6

我使用以下命令行处理示例输入 PDF,使用自编译的 Ghostscript v9.16(未发布,来自当前的 GhostPDL GIT 源):

gs -o -                                          \
   -sDEVICE=pdfwrite                             \
   -c "[/CropBox [1 140 320 650] /PAGES pdfmark" \
   -f source.pdf                                 \
                                                 \
| gs -o tst.pcl                                  \
    -sDEVICE=pxlcolor                            \
    -dUseCropBox                                 \
    -f -
Run Code Online (Sandbox Code Playgroud)

(您可能已经注意到,我通过管道连接了 2 个不同的 Ghostscript 命令,以便将临时 PDF 文件写入磁盘。)

如果你想在 Windows 上做同样的事情,cmd.exe/DOS 框中的命令行将是:

gswin64c.exe -o -                                ^
   -sDEVICE=pdfwrite                             ^
   -c "[/CropBox [1 140 320 650] /PAGES pdfmark" ^
   -f source.pdf                                 ^
                                                 ^
| gswin64c.exe -o tst.pcl                        ^
    -sDEVICE=pxlcolor                            ^
    -dUseCropBox                                 ^
    -f -
Run Code Online (Sandbox Code Playgroud)

然后我用自编译的 PCL 查看器(也来自 GhostPDL 源)打开它,pcl6

pcl6 tst.pcl
Run Code Online (Sandbox Code Playgroud)

这是显示pcl6窗口的屏幕截图:

pcl6-截图

正如KenS 还指出的:-dUseCropBox处理裁剪后的PDF 中间数据时使用很重要!