ghostPCL:为啥这个文件没有正确转换为 PDF?

Posted

技术标签:

【中文标题】ghostPCL:为啥这个文件没有正确转换为 PDF?【英文标题】:ghostPCL: why is this file not converted properly to PDF?ghostPCL:为什么这个文件没有正确转换为 PDF? 【发布时间】:2016-01-12 20:13:33 【问题描述】:

我正在使用 ghostpcl-9.18-win64。这是我用来生成 pdf 文件的脚本:

gpcl6win64-9.18.exe -sDEVICE=pdfwrite -sOutputFile=%1.pdf -dNOPAUSE %1.txt

可以在here找到要测试的文件,在here可以找到运行ghostpcl的结果。

如果您查看 pdf 文件,它只包含一个页面(应该有 2 个页面)并且缺少一些文本。这是为什么?我总是在脑海中想象 ghostpcl 会产生一个与打印输出相同的 pdf。我错过了什么,也许是参数?

事实上,当我使用 lpr 命令在 RHEL 上打印文件时,它打印的正是我所期望的。我想知道 ghostpcl 工具将 pcl 文件转换为 PDF 的可靠性如何。如果它不那么可靠,一个更广泛的问题是:是否有其他工具可以做到这一点?我主要对linux版本感兴趣。

txt 文件基于使用SQR 生成的文件。

谢谢

【问题讨论】:

OK 首先,您指向的文件显然只是一个文本文件,而不是真正的 PCL。其次,如果您使用显示设备通过 gpcl6win32.exe 运行它,那么您将看到完全相同的输出。因此,它与从输入创建 PDF 文件无关。我不是 PCL 专家,也没有 PCL 打印机可以试用。如果您认为输出不正确,那么您应该打开一个错误报告(但不是针对 pdfwrite 设备),了解 PCL 的人会告诉您为什么会发生这种情况。我的猜测是 PCL 实现之间的差异,它们不是很标准。 实际上它确实包含 PCL,因此您确实必须让懂它的人查看该文件。 【参考方案1】:

事实上,OP 确实提出了一个错误报告(但这里没有提到):

http://bugs.ghostscript.com/show_bug.cgi?id=696509

我们的 PCL 维护人员认为输出是正确的,因为它与至少一台 HP 打印机匹配。有关详细信息,请参阅上面的 URL。

【讨论】:

是的,我确认我创建了错误报告。我今天要更新我的帖子,但你在我前面。谢谢。【参考方案2】:

根据关于 bug 线程的讨论,输入文件是无效的,因为它应该有 CRLF 而不是只有 LF。

如果我将 LF 转换为 CRLF,那么我的输入文件将按预期转换为 PDF。但是,将 LF 转换为 CRLF 并不是一个通用的解决方案。根据支持,LFs 可用于图像。在这种情况下,将这样的 LF 转换为 CRLF 可能会破坏图像。

似乎在错误线程上我错了一件事,在我们的系统中,lpr 在发送到打印机的最终文件中也包含回车符。我按照此处的说明进行操作:https://wiki.ubuntu.com/DebuggingPrintingProblems,以及“获取将发送到打印机的数据”部分中的说明打印到文件,并且该文件包括回车。

【讨论】:

以上是关于ghostPCL:为啥这个文件没有正确转换为 PDF?的主要内容,如果未能解决你的问题,请参考以下文章

为啥调用 '.values' 时 pd.Timestamp 会转换为 np.datetime64?

pd.datetime 没有正确索引

为啥我用powerdesigner导出er图,只有几个数据库的表,没有箭头和关系之类的?

我想转换分区格式为NTFS,为啥总是这个提示:文件系统的类型是FAT32。输入驱动器E:的当前卷标 为此驱动

有没有办法使用 BeautifulSoup 将数据从列表正确转换为 CSV 文件?

为啥 PHP 没有为 json 文件返回正确的 mime?