在我们的软件中,我们需要能够将打印机驱动程序写入C:\Windows\System32 32\spool\PRINTERS文件夹的SPL文件转换为PDF文件。对于PCL格式的SPL文件,我们使用来自pcltool.exe的VeryPDF执行这种转换,这通常都很好。然而,我们有问题的SPL文件产生的打印机驱动程序“佳能iR 5235/5240 PCL6”。例如,以下SPL文件的结果是在记事本中打印出一个带有单词“the”的页面:
http://files.etvdzs.info/00025.spl
使用pcltool.exe转换00025.spl会产生一个70页的PDF格式,每个页面的顶部都会有一行垃圾字符。试图使用其他PCL查看器打开00025.spl会给出类似的结果。我们问了VeryPDF,他们告诉我们这不是一个有效的PCL文件。
有人能告诉我这个文件到底有什么无效吗?是否有可能将其转换为有效的PCL或以其他方式从中提取可用的数据?
顺便说一句,我们在由“佳能iR 5235/5240 PS3”打印机驱动程序生成的Postscript文件上也有类似的问题。二进制序列以$CDCA10开头,在文件中的不同位置以$FFFF000000000000000001结尾。删除这些序列之后,我们就可以正常地转换文件了。对于“佳能iR 5235/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或以其他方式从中提取可用的数据?
我编写的程序成功地将打印机驱动程序“佳能iR 5235/5240 PCL5c”和“佳能iR 5235/5240 PS3”生成的假脱机文件分别转换为有效的PCL和Postscript,因此我不认为这是程序不工作的简单问题。
发布于 2013-12-18 05:00:51
这里可能有类似EMF或类似文件的东西。确保服务器队列(如果正在打印到网络打印机)设置为“在客户端计算机上呈现”。我也希望将打印处理器设置为Winprint RAW。这也可能是佳能PCL打印机没有你想要的那样通用。您可以尝试不同的PCL驱动程序,看看您的转换器和佳能设备是否支持这种格式。要确认问题不是Windows假脱机程序,可以将端口设置为文件和/或使用捕获实用程序来写出打印机实际接收到的所有处理。如果这样做有效,但SPL不起作用,那么您就会遇到Windows假脱机程序和/或处理器问题。
vclpdcap捕获实用程序
https://stackoverflow.com/questions/18348365
复制相似问题