从 PostScript 文件中删除 CPCA 位

Removing CPCA Bits from a PostScript file

我目前正在编写代码以从保存的 PostScript "print to file" 文件中删除 Canon CPCA 位,以便生成的文件只是一个纯 PostScript 文件。

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

这是我正在谈论的示例...请注意 header 之前和页脚之后的位: 有传言说有 CPCA 协议的规范文档,但我找不到,即使在佳能的开发者门户中也是如此。任何人都可以提供有关规范的任何详细信息,以便我可以删除规范所说的可能包含的所有 CPCA 数据吗?

在此先感谢您的帮助。

因此,查看文件,在 %!PS 之前有一堆东西,我假设(正如您在问题中指出的那样)是佳能 CPCA 东西的一部分。

然后是符合 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(同样如您所述)跟随着一些 运行dom 二进制文件。

根据 Canon CPCA 规范的描述,我怀疑您是否会在 PostScript 程序中找到其中的任何一个,我相信它应该始终环绕程序,所以如果您删除 %!PS 之前和 %%EOF 之后的所有内容,您应该没问题。请注意,某些工作流程可以连接 PostScript 程序,这是一个坏主意但通常有效,您可能需要注意这一点。

我尝试删除 PostScript 程序前后的二进制文件,运行 结果,它生成了一个页面 'Test'。