两页PostScript文件打印时第一页内容模糊问题求助
问题原因
- 多余的
%%EOF标记:%%EOF是PostScript文件的全局结束标记,仅能放在整个文件的末尾。你在第一页showpage之后插入了%%EOF,大部分PS解释器读到此处就会终止解析,部分兼容DSC规范的解释器虽会继续处理第二页内容,但非法的文件结构会导致第一页渲染参数异常,最终出现模糊问题。 - 未做页面图形状态隔离:PostScript的
showpage操作符仅负责输出、清空当前页面内容,不会重置当前变换矩阵、字体等图形状态。如果不做页面状态隔离,第一页设置的translate、scale变换会保留到第二页,第二页重复执行变换会导致坐标偏移,状态混乱也会干扰第一页的渲染输出。 - 第二页缺少字体定义:仅在第一页设置了字体,若解释器在页面间重置了图形状态,第二页会使用默认字体,也可能引发连锁渲染异常。
修正后代码
%!PS-Adobe-2.0 %%Pages: 2 %%Page: 1 1 save /Times-Bold findfont 200 scalefont setfont 54.0 180.0 translate 0.050400 0.050400 scale 0.0000 0.0000 0.0000 setrgbcolor 1675 1675 moveto ( page one) show showpage restore %%Page: 2 2 save /Times-Bold findfont 200 scalefont setfont 54.0 180.0 translate 0.050400 0.050400 scale 0.0000 0.0000 0.0000 setrgbcolor 1675 1675 moveto ( page 2) show showpage restore %%EOF
说明:每个页面用save/restore包裹,保证页面间图形状态完全隔离;删除了中间多余的%%EOF,仅保留文件末尾的结束标记;第二页补充了完整的字体设置,保证渲染参数统一。
内容的提问来源于stack exchange,提问作者Sethian
相关产品推荐
相关产品推荐

