admin管理员组

文章数量:1533185

2024年4月23日发(作者:)

(一)

PS(PostScript)格式文件

PS格式文件是使用的PS页面描述语言编写的文件。该语言是一种基于堆栈的解释型语言,

已由支持 Macintosh机器输出激光打印的Leve 1 发展到现在支持多种平台的Leve 13,

其特点是将文字也作为图形处理。对PS编程感兴趣的朋友可到http:

//免费下载Glein Reid所著《Thinking in PostScript》一书。阅

读PS文件需要相应的语言解释器,即阅读器,这些阅读器多为商业软件,据本人所知共享

软件仅有Ghostgum Software公司的GhostScript和Gsview。GSview是GhostScript

在windows和OS/2下的图形接口,而GhostScript则为PS页面描述语言的解释器。目

前若使用GSview 2.70作为阅览器,则需要有GhostScript 5.5才能运行。可到

/~ghost/下载。GSview既可阅览PS和PDF文件,进行文

件格式转换,又可拷贝文件中的图形,还可打印成册。

(二)也可用专门的PS viewer查看, 它也是acrobat公司的,楼主可以搜索一下。

(三).ps文件就是PostScript格式的文本文件, 可以用PS View直接打开.ps文件, 也可

以用Adobe Acrobat Distiller转换成PDF文件. Distiller包括在Adobe Acrobat完整版

中.

一般转成pdf的通用方法是安装Adobe Acrobat Professional,然后系统就会增加一个“Adobe

PDF”打印机。之后便可以采用打印的方法将其他文件转成pdf格式的。对于科技论文中所

用的图片而言,eps格式的图片是比较通用的,而windows下最常用的画图软件visio却不

支持直接将visio图案转成eps格式,只能按照上述安装“Adobe PDF”打印机方法,先将visio

文件打印成pdf格式,然后将pdf文件导出或者另存为为ps文件,再用gsview打开ps文件,

在Options菜单中选中EPS Clip,再用File菜单中的“PS to EPS”命令得到只包含图片部分的

eps文件(注意:打印时图片可能并不能占满整个页面,这没有关系,"PS to EPS"命令可以将

周围的空白裁减掉——当然要选中"EPS Clip")。

Adobe Acrobat Professional是商业软件,其实有一种使用免费软件的方法直接将各种文件转

成ps文件,这就是安装postscript打印机。Adobe自己本身提供了这样一个打印机(adobe

universal postscript drivers,官方只支持到win xp,在win7上安装需要以兼容模式运行),HP

也有(HP Universal Printer Driver - Postscript for Windows,官方说明能够支持vista,其实win7

也支持)。安装这两个打印机时,将端口选为FILE,就能最终安装好PS打印机。之后便可

以将文件打印成ps格式,然后可以使用各种工具转成pdf(有免费的ps2pdf工具,一般的latex

套装中有)或eps。

打印时选择打印到文件,这样会出现一个对话框提示将文件输出到某个地方,否则在输入文

件名时就要同时输入路径名,这样才能比较容易地找到最终的输出文件。

注意:adobe的postscript的打印效果不是很好,不知是否是设置的问题,而HP的打印机驱

动打印出来效果好多了。此外,HP的postscript驱动不一定要是universal printer driver,可

以选定某款型号支持ps的打印驱动即可,如HP LaserJet 2100 Series PS。

注意:打印机打印出来的ps文件不一定具有通用性。如用HP LaserJet 2100 Series PS打印机

输出的ps文件在windows下用gsview32可以很好的查看,在linux下用gs也可以很好查看,

但是用evince就会出错。因为HP LaserJet 2100 Series PS打印机输出的ps文件前面增加了

如下数行:

%-12345X@PJL JOB

@PJL SET RESOLUTION = 1200

@PJL SET ECONOMODE = OFF

@PJL ENTER LANGUAGE = POSTSCRIPT

使得evince程序不能识别,将这几行注释掉就可以了(不影响转成eps格式的文件,因为转

换都是依赖于ghostscript的)。

还有,PS打印机的“属性”-->“高级”设置中的“postscript选项”,其中的输出一定要设置为“内

嵌postscript文件”(即eps),这样设置后,以后适用gsview转换为eps格式才能将空白切

去。

也可以不使用gsview转成eps文件,可以在网上下载专门的ps2eps软件。

ps文件最终还要转成eps文件才能在latex文档中使用。现在的方法有一些如下方法(实际

上都依赖于GPL Ghostscript):

1. 在windows下使用gsview32(实际上是GPL Ghostscript的图形前端),选中Options-->EPS

Clip参数,然后选中"File-->PS to EPS"转成eps格式文件(这要求在使用打印机时就要选定

postscript选项为"内嵌postscript")。

2. 网上下载的ps2eps工具(/~bless/ps2eps)。这个需要perl和

Ghostscript。

3. 使用GPL Ghosgscript中自带的ps2epsi命令。其中生成的epsi文件是一种特殊的eps文

件,在普通eps文件的基础上增加了一个位图的preview部分(以postscript文件的注释的形

势),使用其他命令将此注释删除掉就可以得到最终的eps文件。命令如下"sed -e

'/^%%BeginPreview/,/^%%EndPreview/d' <输入epsi文件> <输出的eps文件>". 如果输入文

件是打印机打出来的ps文件,那么在打印机设置的postscript选项中要求不要选“内嵌的

postscript“。

4. 使用ImageMagick工具包中的convert和display命令。convert也是依赖于Ghostscript(难

以区分是安装的gs还是ImageMagick自带的)。但是这种转换出来的效果很差,而且计算

bounding box还是会出错,不能完全显示图片的所有部分。[evince在显示Windows下用PS

打印机打印出的ps文件时,不能完全显示图片的所有部分(windows下gsview32的显示很正

常),而转化成eps文件后显示正常]

5. 我认为使用gs引擎本身的参数也能搞定这种转换,但是需要研究(网络搜索一下)

在linux系统中最直接的办法可能就是第3种办法了,在windows中还是使用gsview比较好。

(没有相应sed命令)

linux下使用ps2epsi和sed工具将ps文件转成eps文件的脚本(这个时候输出的ps文件应该

是正常输出的,ps打印机的postscript选项不要选“内嵌postscript文件”)如下所示:

#!/bin/bash

# Author: Yang YT

# Date: 2010-10-19

本文标签: 文件打印打印机转成