最新消息:20210917 已从crifan.com换到crifan.org

【整理】DVI,PostScript,PDF之间的区别和如何互相转换

工作和技术 crifan 8221浏览 0评论

下文的主要内容摘自:LATEX Notes v 1.24


DVI、PostScript、PDF,都是和LATEX 紧密相关的,属于页面描述语言(Page Description Language,PDL)是一种在较高层次上描述实际输出结果的语言。

【DVI,PostScript,PDF之间的区别】

PostScript

最早的打印机只用于打印字符,它使用的硬字符与打字机类似。后来出现的点阵(dot matrix)打字机用一系列的点来“画”出字符,当然它也可以画出图形。当时矢量图的打印只能由绘图仪(plotter)来完成。

1976 年,施乐(Xerox)推出了首台激光打印机,它结合了点阵打印机和绘图仪的优点,可以同时打印高质量的图形和文字。

同一时期,John Warnock 也在酝酿一种类似于Forth 的图形设计语言,也就是后来的PostScript(PS),当时他正在旧金山一家电脑图形公司Evans & Sutherland 工作。1978 年老板想让Warnock 搬到位于犹他州的总部,他不想搬家就跳槽到了施乐。

Warnock 和Martin Newell 开发了新的图形系统JaM(John and Martin),它后来被合并到施乐的打印机驱动程序InterPress 中去。这两位还开发过另一个系统MaJ。

1982 年,Warnock 和施乐研究中心图形实验室主任Chuck Geschke 一起离开施乐,成立了Adobe 公司。Newell 后来也加入了Adobe。

1984 年Adobe 发布PS 后不久,Steve Jobs 跑来参观,并建议用它来驱动激光打印机。次年,武装着PS 驱动的Apple LaserWriter 横空出世,打响了80 年代中期桌面出版革命的第一枪。

90 年代中后期,廉价喷墨打印机的流行使得PS 逐渐式微,因为PS 驱动对它们毕竟是一个成本负担。

 

PDF

1993 年,Adobe 推出了一种开放的格式:Portable Document Format(PDF),它于2007 年成为ISO 32000 标准。除了开放,PDF 比起PS 还有一些其它优势:

  • PDF 基本上是PS 的一个子集,因此更轻便。
  • PDF 可以嵌入更先进的字体,具体见8.2节。
  • PDF 支持嵌入乱七八糟的东东,比如动画。
  • PDF 支持透明图形。

PDF 虽然拥有上述优势,起初它的推广却并不顺利,因为其读写工具Acrobat 太贵。Adobe 很快推出了免费的Acrobat Reader(后更名为Adobe Reader),并不断改进PDF,终于使它超越了曾经的事实标准PS,成为网

络时代电子文档的新标准。

 

DVI

Knuth 最初设计的TEX 只能用于XGP 打印机,这台打印机本身还需要一台PDP-6 主机为它服务。1979 年,David Fuchs【注1】提出把TEX 的输出改为设备无关的格式,也就是Device Independent format(DVI)。

DVI 只是一种中间格式,用户还需要另外的处理程序(driver)把它转换为其它格式,比如PS 或PDF ,甚至PNG、SVG 等。DVI 不能嵌入字体和图形,PS 和PDF 可以选择是否嵌入字体。

【注1】

Fuchs 本科毕业于普林斯顿,1978 年进入斯坦福攻读博士学位。他不是Knuth 的学生,但是完成过一些TEX 的开发任务。他在Adobe 工作过一段时间,现在混入了娱乐圈,担任过电影《Red Diaper Baby》和《Haiku Tunnel》的制片人。

 

Ghostscript

PS 输出时需要一个解释器(Raster Image Processor,RIP)来把它转换为点阵图形。RIP 可以是软件,也可以是固件(firmware)或硬件【注2】。

Ghostscript 是一个基于RIP 的软件包,除了RIP 它还有一些其它功能,比如处理EPS,把PS 转换为PDF 等。Ghostscript 已经被移植到Windows、Unix/Linux、Mac OS 等多种操作系统,和它匹配的前端图形用户界面(GUI)有GSview、Ghostview、gv等。

 

【DVI、PS、PDF 等格式的的转换关系】

DVI、PS、PDF 等格式的的转换关系如下图所示:

DVI、PS、PDF 等格式的的转换关系

最早的driver 是dvips, 它把DVI 转换为PS。dvipdf 把DVI 转为PDF,它后来被dvipdfm 所取代;dvipdfm 主要用于处理单字节字符,1999 年之后停止开发;在dvipdfm 基础上发展来的dvipdfmx 可以处理多字节编码(字符编码详见7.1节)。

pdfTEX 是一种特殊的driver,它跳过DVI,直接用TEX 源文件生成PDF。基于pdfTEX 的pdfLATEX 则把LATEX 源文件转为PDF。

包老师倾向于dvipdfmx,因为它对图形格式的兼容性较好,而且擅长处理中文。

得到DVI 后,我们可以在控制台用以下命令把它转为PDF。

dvipdfm hello_world(.dvi)

【注2】

固件RIP 在打印机内置处理器上运行,硬件RIP 常见于高端打印设备。

我们也可以把它转为PS,接着用Ghostscript 的一个命令行程序把它转换为PDF,注意第二个命令需要.ps 后缀。一般情况下不推荐这种方法,因为它多了个步骤。

dvips hello_world(.dvi)
ps2pdf hello_world.ps

pdfLATEX 用法如下:

pdflatex hello_world(.tex)

转载请注明:在路上 » 【整理】DVI,PostScript,PDF之间的区别和如何互相转换

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
87 queries in 0.185 seconds, using 20.07MB memory