从PostScript文件中删除CPCA位

问题描述 投票:0回答:1

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

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

这是我正在谈论的一个例子...注意标题之前和页脚之后的位:enter image description here enter image description here Rumor认为CPCA协议有一个规范文档,但我找不到,即使在Canon的开发人员中也是如此门户。任何人都可以提供有关规范的任何详细信息,以便我可以删除规范中可能包含的所有CPCA数据吗?

在此先感谢您的帮助。

postscript
1个回答
1
投票

因此,看看文件,在%!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(再次如你所说)随后是一些随机的二进制文件。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.