使用 GhostPCL 将带有图像的 PCL 转换为 PDF
Posted
技术标签:
【中文标题】使用 GhostPCL 将带有图像的 PCL 转换为 PDF【英文标题】:Using GhostPCL to converting PCL with images to PDF 【发布时间】:2014-04-24 12:50:03 【问题描述】:我目前正在尝试使用 GhostPCL (PCL6) 将一些 PCL 文件转换为 PDF。
在大多数情况下,这是可行的。但是,某些转换存在一个奇怪的问题。出于某种原因,PCL6 没有转换我们文档顶部的某些徽标。标志的格式为:
^[(25XABCDEFGHIJKLMNOPQ^[(3@^M
^[(25X^[&a+1.49RRSTUVWXYZ[\]^_`ab^[(3@^M
^[(25X^[&a+1.49Rcdefghijklmnopqrs^M
在 vim 中查看 PCL 文件时。将文件打印为 PCL 文件时,图像可以正确打印,但在转换为 pdf 时,会出现以下情况:
ABCDEFGHIJKLMNOPQ
RSTUVWXYZ[\]^_`ab
cdefghijklmnopqrs
我认识到该格式旨在与某种嵌入式图像或字体进行匹配,但尝试在 PCL 上找到有用的文档非常困难(因此我实际上可以弄清楚这些字符的含义)或转换过程。
谁能提供一些关于如何进行转换的见解?我们需要在转换后的文档中使用这些图像/徽标,因为它们通常包含免责声明信息作为图像的一部分。
EDIT1:我也尝试过转换为 postscript 并打印,结果发生了同样的情况。
EDIT2:在查看器中渲染 PCL 文件时,会显示相同的文本而不是图像。但是在打印时,徽标确实出现了。奇怪……
EDIT3:澄清一下,将 PCL 文件直接发送到打印机似乎不会导致问题(即徽标打印正确)。只有当我尝试将其转换为另一种文件格式时才会出现问题。
【问题讨论】:
【参考方案1】:当您尝试使用 Ghostscript 渲染 PCL 输入时会发生什么?例如显示设备。如果它不呈现,它也不会以 PDF 结尾。
您是否尝试将文件打印到 PCL 打印机?
如果它适用于 PCL 打印机,但在渲染时不适用,您可以打开一个针对 ghostpcl 的错误。如果它呈现但没有以 PDF 结尾,那么您可以使用“pdf writer”组件打开一个针对 ghostspcl 的错误。
徽标可能使用光栅显示,这是 PCL 成像模型的一部分,在 PDF 中没有对应物,因此无法复制。在 PDF 设备上使用光栅运算的结果是可变的,有时它会如您所愿,但通常不会。
【讨论】:
你知道如何判断PCL文件是否包含光栅吗?不幸的是,我没有生成这些 PCL 文件,所以我实际上不知道它们是如何制作的,也不知道图像/徽标是否是光栅。 不幸的是,这不是一个简单的问题,问题在于,与 PDF 不同,唯一的判断方法是检查 PCL 文件执行的每一个操作,看它是否是光栅。并且有不止一个光栅。事实上,如果有记忆的话,技术上就有 255 个。您是否尝试使用 Ghostscript 将文件渲染到显示设备? 不幸的是,我没有真正做到这一点的好方法。我正在通过 putty SSH 连接到远程机器以执行此操作,并且没有可用的 xterm 设置。如果我尝试将 PCL 文件复制到 windows 并使用不同的 PCL 查看器来查看文件(ghostpcl 由于某种原因在我的 windows 框上不起作用),相同的文本在上角,但因为现在在不同的机器,我认为它不再是一个可靠的测试了。我尝试将文件转换为其他格式并收到相同的问题。 你能分享文件吗?我可以帮你看看。 我将不得不看看我是否可以生成一个与客户无关的。我目前正在处理的那些有客户信息。以上是关于使用 GhostPCL 将带有图像的 PCL 转换为 PDF的主要内容,如果未能解决你的问题,请参考以下文章
PostScript/PCL - 获取文档页面信息:页面大小、黑白/颜色
c_cpp 将渲染图像转换为来自pcl :: visualization :: PCLVisualizer的cv :: Mat