浅谈基于Postscript 语言的印刷页面输出
印前处理系统中, 目前常用的页面描述语言是Adobe的Postscript语言。页面描述语言是一种具有较强图形功能的通用程序设计语言, 其主要功能是在输出页面上, 描述文字、图形和图像。由于这种描述是通过抽取图形实体来完成的, 因此描述质量高, 经济有效, 且与设备无关。
一、基于Postscript的印刷页面编程基础
1 . Postscript语言的特点
从PS语言本身看, 它一方面是一种具有很强图形功能的通用程序设计语言, 另一方面又是一种具有一般程序设计语言特性的页面描述语言。也就是说,Postscript具有通用程序设计语言和页面描述语言的双重特征。归纳起来,
PS语言其有以下主要特点:
① 具有通用程序设计语言的一些基本结构, 用Postscript描述的页面信息紧凑而有效。
② 具有强大的文字、图形和图像处理功能。
构成由直线、圆弧和三次曲线组成的任意形状的图形, 图形可以自交或包含不相连的部分和空洞; 填充操作允许图形轮廓线是任意形状和任意宽度; 裁剪路径可以是任意形状; 填充颜色可以通过Grayscale , RGB,CMYK, CIE- based等多种途径指定, 也可以是重复图案、光滑的渐变、彩色映射和专色; 文字完全作为图形处理,所以PS语言的任何图形操作符同样适用于文字;PS语言能根据不同的彩色模型以任意分辨率描述取样图像, 提供处理和输出取样图像的功能; 在通用坐标系中, PS语言支持由平移、变比和旋转等线性变换组成的复合变换, 而且这些变换适用于页面描述的所有元素, 即文字、图形和图像。
2 . Postscript的页面图形描述基本方法
PS语言最显著的特点就是它具有强大的页面描述功能。PS语言根据Adobe公司所提出的成像模型, 把对页面上图形的描述简化为构造路径和着色路径两个基本过程。通过这两个基本操作便可产生任意形状的几何图形。
① 路径构造。
Postscript路径是定义多种形状、轨迹和区域的方法, 路径用来画线、指定填充区域的边界和定义裁剪其它图形的模板。路径由直线段和曲线段组成, 这些线段可以相互连结也可以不连结, 路径的拓扑结构是没有限制的, 可以是凸形, 也可以是凹形的, 它可以包含多个封闭子路径, 因而表示几个区域, 并且路径可以按任意方式自身相交。
路径用Postscript图形机制内部的数据结构来表示,尽管路径不像Postscript对象那样可以直接存取, 但是它的构造和使用完全在Postscript程序的控制之下。
② 着色处理与图形生成。
着色操作符通过把几何图形扫描变换到光栅存贮器中来表示当前页上的标记, 常用的着色操作符主要有stroke和fill, 较为专用的操作符是image。
③ Postscript字符和字库的特点。
在PS语言中, 文本是由一系列的Postscript字符组成的, 而任意Postscript字符是一个能进行任何图形操作的图形。只是它们各自具有不同的形状, 而且这些图形形状都是由一段贝塞尔曲线段和直线段构成的。
字库资源是PS语言提供的一个最主要的资源类,它是各类字符的集合, 其中包含了字符形状路径的定义。由于字符具有多种字体属性, 同一个字符采用不同字体时的字符形状各不相同。因此, Postscript把一种字体的字符定义存放在一个字库资源实例中, 这样的一个实例便是一个字库。作为资源, 字库通常只是在Postscript程序需要时才由解释器装入到虚存中。通常,字库是以程序文件的形式存在, 因而一种字体便是一个“ 字库程序”。当解释器遇到findfont时, 便会根据它的操作数对象所提供的字库名去执行某一个字库程序,从而创建一个字库词典, 并把它存放在全局或局部虚存中。一般地,字库名总是用相应的字体名称加前缀“ / ’来表示, 如/ Helvetica, / Times-Roman等。
由于Postscript字库是以矢量的方式定义字符, 其中的Postscript字符可以进行任意的缩放操作而不会产生字符的变形或者出现锯齿现象。因此, 在Postscript字库中只需定义一种大小的字符形状, 便可通过对字符坐标系的缩放操作而得到任意大小的相应字符。
④ 按图形方式处理文本的过程。
PS语言把任何字符都当作图形来处理, 而有关字符路径的描述都包含在Postscript所提供的字库资源中, Postscript程序只要使用相应字库便可调用这些字符路径。PS语言控制文本输出包括两大过程, 即设置当前字库与显示字符。
设置当前字库
这一过程解释器通常需经过选择字库、确定字体大小和设定字库三个步骤。
选择字库: PS语言使用findfont操作符把所需的字库词典压入到操作数栈顶, 这可通过把相应的字库名字作为findfont操作符的操作数对象来实现。例如: 用/ Times-Roman等。
确定字体大小: 在Postscript字库中, 所有字符都是按照一个单位长度大小进行形状的定义。这意味在缺省的字符空间中, 标准字符大小为PS语言所默认的1个单位长度, 即1 /72in。因此, 标准大小的字库必须先进行适当的放大处理才能使用。这也是要求事先确定好输出文本字体大小的原因。
设定当前字库: 缺省情况下, 图形状态中的当前字库为空, 所以接下来便需要设定当前字库。这需借助于setfont操作符来完成。该操作符只需一个操作数对象,用来指定准备用作当前字库的某一字库词典。例如: / Times-Roman findfont 72 scalefont setfont。
显示字符
一旦当前字库已经设定, 便可调用字符描述过程,创建字符形状路径并进行着色处理。这一过程通常是由着色操作符show来完成的。但在具体操作之前, 首先要确定图形状态中是否存在当前点, 否则程序将因为没有当前点而出错。
确定当前点: 在创建大部分图形对象的轮廓路径时首先要确定位置。字符作为一种特殊形状的图形也不例外, 任何字符在输出前都需要事先确定它在当前页面上的具体位置, 因而在显示字符之前就应该先设定它的起始显示位置。
着色字符: 如果所有准备工作已经完成, 接着就可以使用show等字符着色操作符在页面上生成字符内容。
3 . Postscript文件
① Postscript文件的特点。
用PS语言所描述的文件称为Postscript文件, 一般以后缀名. PS或. eps来表示。由于PS语言具有与设备无关的特性, 因而Postscript文件具有独立于设备、独立于操作系统平台的优点。另外, 尽管Postscript文件也可采用二进制编码方式存储,但它一般是以ASCII编码的文本方式来表示和存储信息, 文件比较小。
以eps.为后缀的Postscript文件称为封装的Postscript文件,它是一种标准的Postscript文件格式,包含了一组文本结构信息与Postscript命令, 可以在各种系统环境的应用软件中进行输入和输出。EPS格式的文件具有文件独立性和封装性两个主要特点。
② Postscript文件的创建。
创建Postscript文件的方法有多种, 以下便是最典型的三种途径:直接用PS语言编写;利用应用软件生成;利用打印方法产生。
③ Postscript文件的使用。
借助应用软件进行屏幕阅读。Postscript文件与平台无关, 只需使用相应的软件即可在Windows .MAC等操作系统下阅读。这些应用软件有多种, 如ghostscript、Gsview和Acrobat Distiller与Acrobat Reader, 其中Acrobat Distiller可对Postscript文件进行解释后生成PDF文件, 然后借助于Acrobat Reader软件进行阅读。
光栅输出设备与Postscript设备。PS语言本质上是一种打印控制语言, 可用于控制输出设备的记录动作。因此, 许多光栅输出设备都把PS语言作为它们所支持的程序语言, 并通过Postscript解释器进行输出转换。
硬拷贝输出。要想硬拷贝输出Postscript文件中的页面内容, 则需要具有支持RIP解释器的输出设备。支持Postscript文件硬拷贝输出设备可以是任意的Postscript设备或系统。例如, Postscript打印机、具有硬件或软件RIP功能的胶片照排机、CTP和数字印刷机等输出系统。在Postscript文件的输出过程中, 总是先进行RIP处理, 生成具有点阵图像特点的页面内容, 然后再通过相应的光栅输出设备进行输出。
二、基于Postscript的印刷页面输出解释
1 . Postscript语言开发环境的建立
PS语言的编写可以直接在文本文档里输入、保存, 然后将后缀名改为. PS, 安装Acrobat Distiller与Acrobat Reader, Acrobat Distiller对Postscript文件解释后就可以生成PDF文件, 然后借助于Acrobat Reader软件进行阅读。
2 . 基于Postscript的印刷页面要素编程实践
② 文字的PS程序实现。
%!ps
72 72 translate
/ Helvetica – Oblique 50 selectfont
1.0 0.0 1.0 setrgbcolor
72 0 moveto
65 7 moveto
( printing engineering ) show
showpage
运行程序, 结果如下
%!ps
/ Helvetica 24 selectfont
72 72 translate
72 0 moveto
(QingDaoUniversityof Science&Technology)show
0.7 setgray
fill
65 7 moveto
(QingDaoUniversityof Science&Technology)show
0.3 0.24 0.92 sethsbcolor
f i l l
showpage
运行程序, 结果如下
%!ps
/ Helvetica 2 4 selectfont
72 72 translate
72 0 moveto
(QingDaoUniversityof Science&Technology)show
0.0 1.0 0.0 setrgbcolor
fill
showpage
运行程序, 结果如下。
③ 四色梯尺( 渐变图)的PS程序实现( 编程见附录)。
④ 半色调图的PS程序实现( 编程见附录)。
三、总结
Postscript语言的重要性已越来越多地被人们所认识, 它不仅在印刷业中获得广泛应用, 也成为数字印前 、数字印刷以及相关领域事实上的工业标准, 用于印刷图文信息的存储、传输、交换及输出的标准格式。Postscript语言对电子出版也具有极其重要的意义, 在Postscript语言基础上发展而来的PDF格式文件是电子出版中主要的电子页面文件格式, 也是跨媒体出版中组织信息的主要方式。