从PostScript文件中删除CPCA位

时间:2019-03-31 17:55:42

标签: postscript

我目前正在编写代码,以从已保存的PostScript“打印到文件”文件中删除Canon CPCA位,以便生成的文件只是纯PostScript文件。

我编写了代码,以删除“%!PS-Adobe-3.0”标题行之前的文件开头的所有位,还编写了代码,以删除“ %% EOF”行之后的所有尾随位。但是在某些较大的文件中,我看到文件中间有一些二进制代码,我相信我需要找出它们并销毁。

这是我在说的一个例子...请注意页眉之前和页脚之后的位置: enter image description here enter image description here 有传言说,有一个CPCA协议的规范文档,但即使在佳能的开发人员门户中,我也找不到。谁能提供有关规范的任何详细信息,以便我可以删除规范中可能包含的所有CPCA数据?

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

因此,查看文件时,我认为(如您在问题中所指出的)%!PS之前是一堆东西。

然后是符合DSC的PostScript程序的常规注释结构。有趣的是,然后是一些特定于佳能的ProcSet。佳能驱动程序似乎没有使用通常的Windows PostScript生成DLL'PScrip5.dll',而是使用了某些佳能特定的CNS30M.DLL版本2.40。

这之后是大量的文档设置,然后是几个相当普通的设备特定的setpagedevice调用:

%%BeginFeature: 
%%+ *PageSize Letter
<</DeferredMediaSelection false
/PageSize [612 792] /ImagingBBox null /Policies << /PageSize 2 >>>> setpagedevice
%%EndFeature 
} stopped cleartomark
[{
%%BeginFeature: 
%%+ *InputSlot Auto
<</InputAttributes <</Priority []>> >> setpagedevice
%%EndFeature 

然后,我们最终转到页面内容。程序要做的第一件事是创建一个CIDFont并将一些字形描述加载到其中。我怀疑这是您关注的二进制文件。它适用于PostScript,不属于Cananon CPCA。

然后程序从该(子集)字体绘制4个字形并弹出页面。

在此之后,我们又有了普通的DSC锅炉板填充物,并且%% EOF(再次如您所述)后面跟着一些随机的二进制填充物。

鉴于佳能CPCA规范的描述,我怀疑您会在PostScript程序中找到它吗,我相信它应该总是围绕该程序,因此如果您删除%之前的所有内容!PS和%% EOF之后,您应该可以。请注意,某些工作流可以连接PostScript程序,虽然这是一个坏主意,但通常可以正常工作,您可能需要注意这一点。

我尝试在PostScript程序之前和之后删除二进制文件并运行结果,结果产生了一个读取“ Test”的页面。