从 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'。
我目前正在编写代码以从保存的 PostScript "print to file" 文件中删除 Canon CPCA 位,以便生成的文件只是一个纯 PostScript 文件。
我已经编写了删除文件前面“%!PS-Adobe-3.0”header 行之前的所有位的代码,以及删除所有尾随位的代码在“%%EOF”行之后。但是在某些较大的文件中,我在文件中间看到一些二进制代码,我相信我需要找出并销毁这些代码。
这是我正在谈论的示例...请注意 header 之前和页脚之后的位:
在此先感谢您的帮助。
因此,查看文件,在 %!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'。