1

在我们的软件中,我们需要能够将打印机驱动程序写入 C:\Windows\System32\spool\PRINTERS 文件夹的 SPL 文件转换为 PDF 文件。对于 PCL 格式的 SPL 文件,我们使用来自 VeryPDF 的 pcltool.exe 执行此转换,它大部分工作正常。但是,打印机驱动程序“Canon iR-ADV C5235/5240 PCL6”生成的 SPL 文件存在问题。例如,以下 SPL 文件是通过在记事本中打印出带有单词“something”的单页产生的:

http://files.etvdzs.info/00025.spl

使用 pcltool.exe 转换 00025.spl 会生成一个 70 页的 PDF,每页顶部都有一行乱码。尝试使用其他 PCL 查看器打开 00025.spl 会得到类似的结果。我们询问了 VeryPDF,他们告诉我们这不是有效的 PCL 文件。

谁能告诉我这个文件到底是什么无效?是否有可能将其转换为有效的 PCL 或从中提取可用数据?

顺便说一句,我们在使用“Canon iR-ADV C5235/5240 PS3”打印机驱动程序生成的 Postscript 文件时遇到了类似的问题。在文件的不同位置存在以 $CDCA10 开头并以 $FFFF000000000000000001 结尾的二进制序列。删除这些序列后,我们就可以正常转换文件了。我为“Canon iR-ADV C5235/5240 PCL6”生成的文件尝试了类似的解决方案,但不幸的是没有成功。

编辑(2013 年 9 月 13 日):二进制序列似乎是 CPCA 代码。通过在以下 URL 注册佳能开发者支持计划,我能够获得有关 CPCA 的文档:

https://www.developersupport.canon.com/user/register

阅读此文档后,我编写了一个程序来从假脱机文件中删除 CPCA 代码。这是从上面的文件 00025.spl 上运行程序的结果:

http://files.etvdzs.info/00025.cleaned.spl

不幸的是,这似乎仍然不是一个有效的 PCL 文件 :-( 谁能告诉我这个文件到底有什么问题?有没有可能将其转换为有效的 PCL 或以其他方式从中提取可用数据?

PS我写的程序确实成功地将打印机驱动程序“Canon iR-ADV C5235/5240 PCL5c”和“Canon iR-ADV C5235/5240 PS3”生成的假脱机文件分别转换为有效的PCL和Postscript,所以我不认为它是程序不起作用的简单问题。

4

1 回答 1

1

奇怪的是,您在这里有类似 EMF 或类似文件的东西。确保服务器队列(如果要打印到网络打印机)设置为“在客户端计算机上渲染”。我还希望将打印处理器设置为 Winprint RAW。也可能是佳能 PCL 打印机不像您希望的那样通用。您可以随时尝试不同的 PCL 驱动程序,看看您的转换器和佳能设备是否支持该格式。要确认问题不是 Windows 后台处理程序,您可以将端口设置为 FILE 和/或使用捕获实用程序写出打印机实际接收的所有处理后的内容。如果这有效,但 SPL 无效,则说明您遇到了 Windows 后台处理程序和/或处理器问题。

vclpdcap 捕获实用程序

于 2013-12-18T05:00:51.450 回答