欢迎来到天天文库
浏览记录
ID:11594037
大小:23.76 KB
页数:5页
时间:2018-07-12
《postscript(pseps格式)讲解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PostScript(PS/EPS格式)讲解 作者:bobob 一、PostScript概述Postscript既是一种页面描述语言,也是一种高级解释型脚本语言。由于它与设备的无关性,使得它无论在那种平台上,都能忠实的再现原貌,从而被广泛应用于打印出版行业,同时由于它是一种解释型脚本,所以它也可以像一般编程语言一样用来解决某些问题。和我们熟悉的pdf文件相比,两者有几个明显的区别:1. pdf有严格的文件结构(文件头,所有对象,交叉引用表,文件尾,线性化pdf也有固定格式)和文档结构(由catalog穿起来的逻
2、辑结构),ps则没有这些;2. ps的数据类型有十几种,pdf只有8种;3. ps有一般编程语言所具有的结构控制条件语句,比如if,ifelse,for,forall,loop,以及function等等,而pdf没有;4. pdf最终是要显示出来给别人看的,ps不仅限于这个目的,它还可以做为脚本实现一定非显示的功能;5. ps语言中的标准操作符有400多个,有的一个操作符有好几种使用方式(参数类型和数量不同),而且ps没有保留字,这些标准操作符完全可以通过ps脚本改变其原来的
3、含义;6. ps文件一般都是没有加密的,所以文件很大,pdf相对要小很多。 通常,一个postscript语言的阅读器,应该包含以下几个大部分:扫描器,解释器,操作数栈,执行栈,字典栈,图形状态栈,虚拟内存区,字体处理块,颜色处理块,以及最后的输出功能,下面将详细说明。 二.Postscript详细介绍 1.基本类型的数据结构简单 OBJECTS复合 OBJECTSbooleanarrayfontIDdictionaryintegerfilemarkgstate(LanguageLevel2)namepacke
4、darray(LanguageLevel2)nullsaveoperatorstringreal Array:能容纳不同类型的对象;可以通过index来访问其中的元素;对array的访问必须有下表安全检查,array长度有最大实现限制;要支持嵌套;值的存储符合复合对象的特征。String:它的元素值必须是0-255之间;长度受程序实现的限制;要能处理转义字符’/’;值的存储要符合复合对象的特征。Dictionary:用来存储键-值对,要实现在字典中插入一个条目;能查询一个键并得到它关联的值;字典在创建的时候要指定最大条
5、目数,当插入一个条目的时候超过最大条目数,pslevel1返回一个dictfull错误,level2以上则自动扩展,最大条目数受字典实现的限制;能支持和字典相关的操作符的实现;值的存储要符合复合对象的特征。File:解释器和运行环境之间用来交流的一个可读或可写的字符流。要支持像磁盘文件这样可以永久保存的类型,也要支持动态生成的类型;一个file对象要创建并打开一个文件;支持其他操作符的读写操作;支持类似read,readline,write,writeline等等的操作;Save:save操作符获取当前local虚拟内存的
6、状态快照并返回描述此快照的saveobject,restore则把local虚拟内存的状态恢复到save产生的快照状态。Restore要实现以下功能:丢弃自从对应的save以来所有在local虚拟内存上产生的对象,归还占用的空间;恢复save时local虚拟内存中的所有复合对象(不包括string);隐式调用grestoreall操作符,把graphicsstate的状态恢复到save的时候的状态;关闭自save以来所有打开的文件(local虚拟内存起作用的时候打开的)。Restore不会影响操作数栈,字典栈,执行栈,以及
7、global虚拟内存。Save和restore可以嵌套。Gstate:一组图形控制参数,分为两大类:设备无关的包括CTM,position,path,clippingpath,clippingpathstack,colorspace,color,font,linewidth,linecap,linejoin,miterlimit,dashpattern,strokeadjustment;设备无关的包括colorrendering,overprint,blackgeneration,undercolorremoval,tra
8、nsfer,halftone,flatness,smoothness,device。要实现以上特性的存取操作。 2.扫描器。 这个是实现浏览器的基础,从字符流中按照postscript语法解析成一个一个的对象,ps‘编码方式有3种:ASCII,binarytoken,和binaryobjectseque
此文档下载收益归作者所有