postscript文件怎么打开?

postscript文件怎么打开?,第1张

PostScript是一种编程语言,最适用于列印图像和文字(无论是在纸、胶片或非物质的CRT都可)。用现今的行话讲,它是页面描述语言。它既可以像程序代码一样具有可读性,又能表示出可任意放大和缩小的矢量图。

GhostScript和CorelDraw本身都可以预览和转换PS文件,如果用最高版本都打不开,

那只能RIP预览了

PostScript是一个Turing-complete编程语言,通常PostScript程序不是人为生成的,而是由其它程序生成的。然而,仍然可以使用手工编制的PostScript程序生成图形或者进行计算。

PostScript是一个基于堆栈的解释语言(例如stack language),它类似于Forth语言但是使用从Lisp语言派生出的数据结构。这种语言的语法使用逆波兰表示法,这就意味着不需要括号进行分割,但是因为需要记住堆栈结构,所以需要进行训练才能阅读这种程序。大部分运算符(其它程序中称为函数)从堆栈中读取变量,并且将运算结构放到堆栈中。如数字这样的符号:en:Literal具有将它们自身副本放到堆栈的效果。 例如:

3 4 add 5 1 sub mul将执行 (3 + 4) × (5 - 1) 这样的计算。

让我们详细地分析一下这是如何完成的:

3 和 4 都是符号,它们将自己放到堆栈中,在这两个命令之后,堆栈将变成这样:

43add是一个运算符,它将堆栈中最上面的两个元素取出(在我们的例子中是3和4)、将它们相加、然后将结果放到堆栈上:

7下面又是两个符号,它们将把堆栈变成这样(需要注意的是 *** 作仅仅局限在堆栈顶部,下面的元素不受影响):

157另外一个运算符sub,从堆栈顶取出两个元素、第二个减去第一个、然后将结果放到堆栈:

47很显然mul同其它两个运算符一样,从堆栈取出两个元素、将它们的乘积放到堆栈:

28 上面的例子只是一个古老的逆波兰表示法计算,当然PostScript也使用变量。详细地说就是它有一个字典用来查找所有不是符号的东西;如果查到的话,那个名字下保存的值就会压缩到栈中(或者更应该说是执行——参见后面的内容);找不到就返回错误。将一个变量放到字典中需要使用def运算符,它用一个名字和一个值作为参数,通过在前面使用斜线构建一个名字。因此

/x1 15 def首先将名字“x1”放到堆栈上、然后是值15、然后执行def,它将从堆栈中取出“x1”和15,并且将15写到字典中“x1”的下面。后面出现的“x1”(注意不要与“/x1”混淆)将会将15放到堆栈而变量并不改变。下面的代码会将x1的值增加2:

/x1 x1 2 add def {和}提供了一些编程的工具。{将解释器切换到延迟运行模式,所有的东西甚至是运算符和其它的可执行对象都放到堆栈中,其中一个例外就是},它将堆栈中从{开始的所有内容,绑定成一个(匿名)处理过程,然后将它放到堆栈上。

这种结构有几种不同的用途,如子程序定义(匿名程序赋给一个变量)、循环、条件等等:

x1 0 eq { 0 } { 1 x1 div } ifelse这段代码首先使用eq测试 x1 是否是 0;根据结果的不同将真或者假放到堆栈上。在此之后,将两个过程放到堆栈上,然后执行ifelse,它从堆栈中取出三个参数,如果第三个参数是真就执行第二个否则就执行第一个。总之,如果 x1 是 0 结果就是 0, 其它情况结果就是 1/x1。

/inc3 { 3 add } defHeredefis used to place something in thedictionary, only this time it is a procedure instead of a simple integer. This works because the values coming from the dictionary areexecuted, not just pushed (as simplistically stated above). Since executing a literal amounts to pushing it, that did not make a difference before. Now executing inc3 will first look it up in the dictionary, find the procedure object representing { 3 add } and execute that. One value must reside on the stack for this to work, sinceaddneeds two arguments, only one of which is given in the procedure itself. Naturally, one passes arguments to procedures by placing them on the stack, so we can simply view inc3 as a procedure that takes one argument. Example call: 这里def将内容放到字典中,仅仅在这个时候它是一个过程而不是简单整数。

71 inc3将71放到堆栈上,inc3将它的值加3,这样就得到结果74。 To produce graphics, PostScript uses an ordinarycartesian coordinate system. 在生成图形的时候,PostScript使用普通的笛卡尔坐标系。

100 200 moveto 300 400 lineto stroke将“光标”移到坐标点(100, 200)然后画线到(300, 400)。

50 70 moveto 100 200 50 80 100 100 curveto stroke生成一个从(50, 70)到(100, 100)的立方贝塞尔曲线,控制点是(100, 200)和(50, 80)。

250 250 moveto (Wikipedia) show在位置(250, 250)使用预先选择的字体画出文本“Wikipedia”,字体选择可以使用例如 /Courier findfont 12 scalefont setfont 这样的命令串。

图形最初在“用户坐标系”中创建,在复制到确定最后输出的“设备坐标系”之前它们可以进行旋转、缩放或者扭曲等变换。

200 300 translate 45 rotate将用户坐标系中的内容上移 200 点、右移 300 点并且复制到设备坐标系时旋转 45 度。

字符“%”用来在PostScript程序中表示注释。作为一个通用的约定,每个PostScript都以字符“%!”开始这样所有的设备都会将它解释为PostScript。

PostScript是一种编程语言,最适用於列印图像和文字(无论是在纸,胶片或非物质的CRT都可)。用现今的行话讲,它是页面描述语言。它与1985年由Adobe推出,最早在AppleLaserWriter上出现(据作者所知)。

PostScript的主要用意是是为以相对设备独立的方式描述影像提供一种方便的语言。该相对设备独立是指不以某种特定设备特性作参照,来描述影像(比如印表机的解析度),这样同一种描述不需修改就可适用於任何一种PostScript印表机(比如,LaserWriter 或Linotron)。实际情况下,有些PostScript文件对於目标设备做假设定(比如它的解析度或纸匣的数量),但这并不实用,而且局限了可转移性。

对於语言本身,通常是解译的,如RPN计算器一样的存储方式。程序把运算的参数存储在一起,然后调用该 *** 作。通常情况下,运算后将结果留在存储显示上。例如,我们将12乘以134。我们会使用以下PostScript程式码:12 134 mul前面的两个字「12」和「134」将12和134存储显示。「mul」激活相乘运算,将两个数值相乘,并将结果推倒存储显示上。结果数值将保留在那里供以后程序中其它运算时使用。

根据手册中Adobe使用的规定,作者用以下两个主题概括运算:参数-1 参数-2。此概念是指使用运算时要推出参数-1 参数-2等后方可激活运算。运算后将显示结果。许多运算返回后无结果(因副作用);返回后显示「-」。

PostScript的发展历程

PostScript至今以有大约15年历史了。它对於印制工业产生很深渊的影响,甚至到今天仍保留着当LaserWriter印表机问世时重要的地位。

以下是PostScript的发展历程的一个概况。其中有些资料源於「Accidental empires」,由Robert Cringely编写的关於个人计算机革新的书。

为了更好理会PostScript,我们必须先了解在它出现以前市场是怎样运做的。在那时候,需要排版设备的话要找Acme Typesetters,他们会提供一套Acme系统及Acme输出设备。该Acme系统和其他生产商的设备不兼容。在多数情况下,与其他系统调换数据相当困难,几乎是不可能的。

如果拥有一台个人计算机,连接在一台只能打出低品质位图字符的点阵印表机上。对於图像的打印效果也只能被在那个时代购买印表机的傻瓜们接受。

PostScript的历史由Parc开始,它是施乐的研究院,许多我们现在不以为然的计算机技术都是从那里开发的:几个首要的例子,如雷射印表机,图像使用者界面和以太网。

John Warnock是工作於施乐的出色的工程师之一。他开发了名为「Interpress」的语言,用於 *** 作施乐雷射印表机。他和他的上司,Chuck Geschke,用了两年时间力图让施乐把Interpress商业化。当建议被拒绝后,他们决定离开施乐,自立门户。

Adobe的诞生

John Warnock和Chuck Geschke把他们的公司取名为Adobe,位於加州的Los Altos,Warnock的家。房子后面有一条小溪,有时你能在关於Napa Valley的酒类向导图上看到,Napa Valley是出产最纯的加州酒的地方。

最初,Warnock和Geschke曾设想自行组建一台真正强大的印表机,但很快他们意识到为其他生产商提供可控制他们生产的印表机的工具更现实。

PostScript Level 1

初始时只称作PostScript。「Level 1」是为了与新近升级的Level 2区别而后加的。

PostScript是一个非常强大的语言,类似与Forth,另一种计算机语言。开始时需要一套相当强大的系统运做PostScript。事实上,在它推出的头几年中,PostScript印表机具有更强的处理能力,可以和Macintosh机连接使用。

PostScript 是相对设备独立的。也就是说PostScript文件可以在任何PostScript设备中运做。你可在雷射印表机上得到300dpi的打印效果,但同样影像在imagesetter中就可得到漂亮且清晰的2400dpi效果。对於用户来讲,他们不需要受限与一个生产商,可自由选择最适合要求的设备。

PostScript的腾飞

对Adobe来说,PostScript是一个相当大的赌注,如果没有Apple计算机的Steve Jobs,他们可能会无法向市场证实PostScript的价值和意义。

1985年,Macintosh计算机的销售量开始下降,而Apple的新机型迫切需要一个有威力的应用程式。Steve

Jobs对Adobe的技术很感兴趣,投资了Adobe 2.5百万让Warnock为Apple LaserWriter编写PostScript控制器。该印表机和HP LaserJet相似,但PostScript控制器可以使它输出「typesetter」品质。

与功能强大的雷射印表机连接的计算机并不会产生大的影响,但Apple和Adobe很幸运地在偶然机会遇到第三个合作夥伴Aldus,一个刚起步的小公司,它编写了能够充分发挥出Mac 和LaserWriter功能的应用程式,该软件就是PageMaker。

在桌上型电脑的问世后的一年内,LaserWriter,PostScript和PageMaker的结合挽救了Apple,Aldus和Adobe也由此变成了有钱的公司。Linotype是首家赏识PostScript价值的图像艺术供应商,它推出了自带专用PostScript RIP的imagesetter。其他的生产商也紧跟其后,很快地PostScript就成了印前业的国际性混合语。

1994:PostScript Level 2

大约在1994,Adobe发行了PostScript的下个修订版本Level 2。 Level 2是个具有重大意义的升级版,也是印前业者急切期盼的版本。

最重要的功能:

增进的速度和可靠性:在Level 2出现之前,Limitcheck和Vmerror PostScript错误非常麻烦,令人头痛。Adobe优化了PostScript程式码和增强程式码的记忆管理功能。该功能提高了功效,尤其对於旋转的扫描作业。

支持分立的内置RIP:Level 2 RIPs能够接受合成的PostScript文件,自行处理分色工作。它并不是一个必须遵循的功能,不同生产商的Level 2 RIPs的功能也有不同。

RIP中解压缩影像:Level 2 RIPs能够解压缩JPEG和CCITT

支持合成字体:该功能对於亚洲国家来讲相当重要,他们的字符比欧洲使用的大。Apple通过QuickDraw

GX来支持合成字体。现今你可能只在Apple的档案储藏柜里找到,还有其他的一些技术突破如OpenDoc 和the Newton。

字体和字型的缓存:有了Level 2,令人讨厌的字体缓存删除没有了。

字型的缓存问题几年后通过一些整版应用程式如PressWise 和Preps 解决了。

改进的驱动程式:Macintosh的LaserWriter 8和Adobe的Windows 3.1系统PostScript driver 2.X为基础,联合恰当的PPD-drivers。

改进的网屏算法:对於许多的RIP生产商,当Level

2推出已是过时的新闻。比如Agfa,已在这前一年就已销售它的对称网屏技术,为胶印业提供高品质的无网屏镜像效果。Adobe版本被称为准确网屏。

Level 2的市场应用较慢

先发表Level 2规范,然后才开始研究它的实际应用,这可以说是Adobe的一大错误。更为难堪的是,竞争者们推出Level 2的竞争产品的速度比Adobe想像的更快。

虽然PostScript Level 2具有明显的优点,但却花费了很长时间才真正开始应用新功能。例如在Level 2推出的6年后,XPress4.11还不能很好地支持分立内置RIP功能.

19XX:PostScript 3

由於一些不明确的原因,Adobe把最新升级版本取名为PostScript 3,而不是PostScript Level 3。和Level 2相比,3升级的意义并不大。这是可以理解的,因为当时许多应用程式还正在如何正确支持好Level 2的困惑中。

PostScript 3的主要优点:

每种颜色支持超过256个灰阶。Adobe在PostScript程式码中包含了12-bit的网屏。可支持每种颜色多达4096个。在过去,256灰阶的极限有时可看到条纹状,尤其是混合色。

支持PDF:PostScript 3 RIPs可支持PostScript Level 2和PDF文件。

改进的分立内置RIP支持功能:PostScript Level 2

RIP本身已经能够完成分色作业,但对於某些类型的影像如双网屏和多彩印影像就不能处理。PostScript 3含有名为Device N的色域。如果非CMKY色彩影像解译成该色域内,PostScript 3 RIP能正确地对影像进行分色。

网络打印:在如今网络发烧的时代,Adobe也不干落后,在PostScript增添了网络功能。有趣的是没有Adobe的OEM用户想尝试该功能。

PostScript有哪些特点?

PS的最大特点是避免了版面制作对使用设备的依赖信,只要符合PS这个标准的数据格式,不管是用MAC微机编辑也好,还是用SUN工作站进行编辑也好,都可以通过打印驱动程序获得共同的PS编码文件;

PS的另一特点是能够综合处理文字和图像,在一页印刷品中,PS将其中的所有信息都用一种计算机数据来表现和描述,为图文合一的版面处理提供了可能;

有了这种页面数据格式,不同生产厂家的通用计算机之间和各种专用计算机系统(设计用,文字处理用,图像制版用等)之间,才可能进行数字化数据的交换,它是印前处理系统开放化的基础之一。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11625818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存