对PS文件实现折手拼版的原理和实用方法
对PS文件实现折手拼版的原理和实用方法
目前在使用彩色桌面出版系统制版时,常用的拼版方法有两种:一种是在发排后将胶片用手工拼成大版,另一种是在计算机上将做好的页面拼在一起。这两种方法都存在着效率低、容易出错等问题。目前市场上还出售一些拼版折手软件。但其价格一般很昂贵,而且通常也只能针对一种应用软件制作的版面进行拼版。
由于应用彩色桌面出版系统软件制作的页面都是以PostScript页面描述语言描述。因此操作员在使用软件设计版面时,实际上是通过计算机进行PostScript编程。编好的PostScript程序在输出到输出设备上时再由光栅图像处理器(RIP)解释成点阵图像。根据所使用RIP或工艺流程的不同。通常在输出时有两种方法:一种是直接输出给RIP解释和输出。另一种是先生成PS文件,然后由RIP调用PS文件,解释后送给输出设备。
由应用软件生成的PS文件都是以PostScript语言描述的。包括版面中的图形、图像、文字、以及输出分辨率、加网描述、用户坐标和设备坐标等描述。对这个PS文件进行的任何修改,都会改变所制作的版面内容或布局,因此可以通过修改PS文件中的坐标描述来实现拼版。本文拟通过对PostScript页面描述语言的简单讨论。以PageMaker软件为例来说明对PS文件实现折手拼版的方法。
一、PS文件的结构
一个完整的PS文件大致可以划分为4个部分:序言、描述、主体和结尾。如图所示。序言部分又称为PS文件头,由一些注释语句组成,用来对PS文件进行一些必要的说明和注释,如生成软件的名称、作业名称、制作日期和时间、页面尺寸、页数、所包含的字体资源等。
描述部分通常以注释语句“%%BeginProlog”开始,这部分包括文件中所使用资源的定义、描述语句的定义、字典和页面尺寸的定义等。不同应用软件和不同打印驱动软件所生成的PS文件的描述部分会有很大的区别,因此所形成的PS文件看上去也就会完全不同。
程序主体部分是对页面内容的描述,是PS文件的主要部分,页面越复杂,这部分所占用的容量也就越大。但这部分的描述并不是直接使用通用的PostScript语句。而主要是使用描述部分中对PostScript语句的各种定义语句,这样做的目的主要是为了提高对PS文件的解释速度。
最后的结尾部分也由一些注释语句组成 主要是对序言部分做必要的补充说明。在序言部分中有许多不确定的注释项,所有不确定项都以“(atend)”标注。然后在结尾部分加以说明。如下面示例说明总页数的注释语句“%%Pages: (atend)”中没有说明总页数。因此在结尾部分就会有相对应的一条语句“%%Pages: 16”来补充说明文件中的页数。
示例:
%!PS-Adobo-3.0
%%title: 16p
%%creator: PageMaker 6.0C
%%CreationDate:5-19-1999,2226
%%For: Powermacb
%%Page: (atend)
%%PageOrder: Ascend
%%BoundingBox: 0 0 658 904
%%ALDBoundingBOX: 0 0 6583 9049
%%DocumentNeededResources: (atend)
%%DocumentSuppliedResources: (atend)
%%DocumentCustomColors: (atend)
%%DocumentProcessColors: (atend)
%ADBDocument Inks: (atend)
%ADBDocumentMutilnkColors: (atend)
%ALDOriginal文件: PowerB HDesktop Folder: 16P
%%EndCommentS
二、有关的PostScript语旬
尽管PostScript页面描述语言有许多描述语句。但进行拼版工作只涉及到其中的页面尺寸定义、坐标平移、旋转、图形状态保存和恢复等少量语句。
X Y Translate %在当前的坐标系中向水平方向平移X,向垂直方向平移Y
Angle Rotate %在当前的坐标系中旋转一个角度
X Y Scale %在当前坐标系中水平缩放X倍,垂直缩放丫倍
A Clip %以当前封闭路径A作为剪切路径,路径内的内容被显示,以外的内容被裁掉
/Save Save %保存当前的虚存状态到 /save中
Save Restore %恢复到以前的虚存状态
Gsave %保存当前的图形状态
Grestore %恢复以前保存的图形状态
Grestoreall %恢复到最开始保存的图形状态
ShowPage %显示当前的页面
三、拼版的原理和步骤
在PS文件中总是以页面为单位。页面的默认坐标都是从坐标原点开始的。要实现拼版.就需要修改原来的页面尺寸和坐标系统,以印张为单位,将不同的页面放置在印张的不同位置上。如果需要折手,还要按照折手的要求对页面进行旋转。重新排列页面的顺序。操作步骤如下:
1.设置新的印张尺寸。按照实际拼版的需要设置大版的幅面尺寸(包括出血、裁切线的尺寸在内)。
2.用Gsave语句保存原来的图形状态。保存页面原始的坐标、比例等图像状态。以便拼版结束后能够恢复到原始状态。
3.以印张为单位,用平移、旋转等语句将各页面放到印张中合适的位置上。
4.以印张为单位去掉各页面的ShowPage语句,并在印张中全部页面描述结束后增加页面显示语句ShowPage,这样就可以把各页面显示在同一个印张中。
5.用Grestore恢复原始图形状态。需要时加人裁切线、灰梯尺、文件名等辅助信息。
6.写入相应的PS文件结尾。
PS文件中默认的比例单位是1/72英寸,即以Point为单位。因此印张尺寸的设置和平移量等数值也必须以Point为单位。例如一个210mm×285mm的16开页面.以Point为单位的页面尺寸为595×808。下面是定义这个页面的PS描述:
ppDSetup{
%%BeginFeature: *CustomPagesize True
595 808 0 0 1
4 dict begin
dup /Oriention exch def
/Pageoffset[5 -2 roll]def
/Pagesize[
5 2 roll dup 0 eq exch 2 eq or{exch}if
]def
/ImagingBBox null def
currentdict end
setpagedevice
%%EndFeature
}PPDCleanup
要将这个页面在印张上水平平移一个页面宽度。则使用如下语句:
595 0 transate。
四、结论
折手和拼版软件是非常有用的软件,可以明显提高工作效率。一般实现拼版的方法有两种:对EPS文件进行拼版和对PS文件进行拼版。通过对PS文件内容的分析,作者使用了第2种实现拼版的方法。并通过编程实现了折手和拼版功能。经过初步测试。可以实现PageMaker、QuarkXPress、Ms word、CoreDraw、Wits制作版面的拼版。比较这2种拼版方法的特点为:
1.对PS文件进行拼版的方法简单,容易实现,对多页面的PS文件可以很方便、快速地实现折手和拼版。
2.对于几个单独的PS文件,只要是用同一个软件制作的相同尺寸的版面,用这种方法也可以很容易实现拼版。
3.由于是对PS文件进行拼版处理,因此PS文件的内容、形式与制作软件和所选用的打印驱动有关,不同应用软件和不同打印驱动所形成的PS文件也不同,需要进行不同的处理,这是该拼版方法的主要限制。
4.使用EPS文件进行拼版时没有上述第3条的限制,因此灵活性会更高。但由于EPS文件只包含单个页面,必须将多个EPS文件同时打开进行拼版。