Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 转换Canon iR ADV C5235/5240 PCL6打印机驱动程序生成的假脱机文件时出现问题_Windows_Pdf_Printer Control Language - Fatal编程技术网

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

Windows 转换Canon iR ADV C5235/5240 PCL6打印机驱动程序生成的假脱机文件时出现问题,windows,pdf,printer-control-language,Windows,Pdf,Printer Control Language,在我们的软件中,我们需要能够将打印机驱动程序写入C:\Windows\System32\spool\PRINTERS文件夹的SPL文件转换为PDF文件。对于PCL格式的SPL文件,我们使用VeryPDF中的pcltool.exe执行此转换,该转换大部分工作正常。但是,打印机驱动程序“Canon iR ADV C5235/5240 PCL6”生成的SPL文件有问题。例如,以下SPL文件是在记事本中打印出一个带有“某物”字样的页面的结果: 使用pcltool.exe转换00025.spl将生成一个

在我们的软件中,我们需要能够将打印机驱动程序写入C:\Windows\System32\spool\PRINTERS文件夹的SPL文件转换为PDF文件。对于PCL格式的SPL文件,我们使用VeryPDF中的pcltool.exe执行此转换,该转换大部分工作正常。但是,打印机驱动程序“Canon iR ADV C5235/5240 PCL6”生成的SPL文件有问题。例如,以下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的文档:

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

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


另外,我编写的程序确实成功地转换了打印机驱动程序“Canon iR ADV C5235/5240 PCL5c”和“Canon iR ADV C5235/5240 PS3”生成的假脱机文件分别验证PCL和Postscript,因此我认为这不是程序不工作的简单问题。

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


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


Hmmm。我想我应该先询问佳能(制造spool文件驱动程序的公司),而不是软件公司(您的报价),“大部分工作正常”处理许多其他文件。感谢您的建议:)我现在已经向佳能提交了支持请求。我仍然有兴趣听到任何人谁可以给这个佳能驱动程序使用的文件格式的任何见解。顺便说一句,不仅仅是VeryPDF有问题;我尝试过的其他所有PCL查看器/转换器都有类似的问题。Hmmm。我想我应该先问一下佳能(制造spool文件驱动程序的公司),而不是软件公司(你的报价),“大多数情况下可以处理很多其他文件”。谢谢你的建议:)我现在已经向佳能提交了一个支持请求。我仍然有兴趣听到任何人谁可以给这个佳能驱动程序使用的文件格式的任何见解。顺便说一句,不仅仅是VeryPDF有问题;我试过的其他PCL查看器/转换器都有类似的问题。谢谢您的回答!在这里问了一个问题之后,我发现了关于这个问题的更多信息:在我这样做的时候删除CPCA代码会导致文件头被删除,因此有必要手动恢复文件头。此外,BeginPage命令还包含必须删除的附加字节。在应用这些更正之后,在大多数情况下,最终会得到一个可用的PCL文件,但它不是100%可靠的。这是尝试不同打印机驱动程序的一个优点。我尝试过的所有XPS转换器都能够处理“Canon iR ADV C5235 UFR II XPS”驱动程序的输出,而无需任何预处理,如删除CPCA代码。使用“Canon iR ADV C5235/5240 PS3”驱动程序,有必要删除CPCA代码,但不需要其他预处理。这很好。我体验过你所描述的施乐设备。代替传统的PJL,它们迁移到XML头。好消息是它是XML,因此很容易解析;然而,有时可能传统上在PS/PCL中的设置存在于此数据中,如果只是简单地将其丢弃,则会导致问题