转换Canon iR ADV C5235/5240 PCL6打印机驱动程序生成的假脱机文件时出现问题



在我们的软件中,我们需要能够将打印机驱动程序写入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

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

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

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

附言:我编写的程序确实成功地将打印机驱动程序"Canon iR ADV C5235/5240 PCL5c"one_answers"Canon iR ADV C5 235/5240 PS3"生成的假脱机文件分别转换为有效的PCL和Postscript,所以我不认为这是程序不工作的简单问题。

这里很可能有类似EMF或类似文件的东西。确保服务器队列(如果要打印到网络打印机)设置为"在客户端计算机上渲染"。我还希望将打印处理器设置为Winprint RAW。也可能是佳能PCL打印机没有你想要的那么通用。你可以尝试不同的PCL驱动程序,看看你的转换器和佳能设备是否支持这种格式。要确认问题不是Windows后台处理程序,您可以将端口设置为FILE和/或使用捕获实用程序来写出打印机在全部处理后实际接收到的内容。如果这有效,但SPL不起作用,那么您就有Windows Spooler和/或处理器问题。

vclpdcap捕获实用程序

最新更新