【Debian参考手册】第 11 章 数据转换

目录

创新互联公司专注于企业全网整合营销推广、网站重做改版、肇庆网站定制设计、自适应品牌网站建设、H5响应式网站商城网站制作、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为肇庆等各大城市提供网站开发制作服务。

11.1. 文本数据转换工具
11.1.1. 用 iconv 命令来转换文本文件
11.1.2. 用 iconv 检查文件是不是 UTF-8 编码
11.1.3. 使用 iconv 转换文件名
11.1.4. 换行符转换
11.1.5. TAB 转换
11.1.6. 带有自动转换功能的编辑器
11.1.7. 提取纯文本
11.1.8. 高亮并格式化纯文本数据
11.2. XML 数据
11.2.1. XML 的基本提示
11.2.2. XML 处理
11.2.3. XML 数据提取
11.2.4. XML 数据检查
11.3. 排版
11.3.1. roff 排版
11.3.2. TeX/LaTeX
11.3.3. 漂亮的打印手册页
11.3.4. 创建手册页
11.4. 可印刷的数据
11.4.1. Ghostscript
11.4.2. 合并两个 PS 或 PDF 文件
11.4.3. 处理可印刷数据的工具
11.4.4. 用 CUPS 打印
11.5. 邮件数据转换
11.5.1. 邮件数据基础
11.6. 图形数据工具
11.7. 不同种类的数据转换工具

下面是关于Debian 系统上可用的格式转化工具及其相关提示的信息。

基于标准的工具,是非常好用的,但支持的专有数据格式有限.

11.1. 文本数据转换工具

如下是文本数据转换工具。

表 11.1. 文本数据转化工具列表

软件包 流行度 大小 关键词 说明
libc6 V:923, I:999 12878 字符集 使用 iconv(1) 的不同语言环境(locale)之间的文本编码转换器 (基础的)
recode V:3, I:23 603 字符集+换行 不同语言环境(locale)之间的文本编码转换器(多功能的,更多别名和特性)
konwert V:1, I:52 134 字符集 不同语言环境(locale)之间的文本编码转换器(高档的)
nkf V:0, I:10 362 字符集 日语字符集翻译
tcs V:0, I:0 518 字符集 字符集翻译
unaccent V:0, I:0 35 字符集 代替重音字符,使用和它们相当的非重音字符
tofrodos V:1, I:22 55 换行 在 DOS 和 Unix 之间的文本格式转换: fromdos(1) 和 todos(1)
macutils V:0, I:0 312 换行 在 Macintosh 和 Unix 之间的文本格式转换: frommac(1) 和 tomac(1)

11.1.1. 用 iconv 命令来转换文本文件

提示

iconv(1) 是 libc6 软件包的一部分并且它可以在类 Unix 的系统上转换字符的编码。

你能够通过如下的命令用 iconv(1) 来转换文本文件的编码。

$ iconv -f encoding1 -t encoding2 input.txt >output.txt

编码值是大小写不敏感的,且会在匹配时忽略“-”和“_”。可以使用“iconv -l”命令检查支持的编码。

表 11.2. 编码值和用法的列表

编码值 用法
ASCII 美国信息交换标准代码,7位代码不带重音符号
UTF-8 用于所有现代操作系统的多语言标准
ISO-8859-1 旧的西欧语言标准,ASCII + 重音符号
ISO-8859-2 旧的东欧语言标准,ASCII + 重音符号
ISO-8859-15 旧的带有欧元符号的西欧语言标准(ISO-8859-1)
CP850 code page 850,用于西欧语言的微软 DOS 的带有图形的字符,ISO-8859-1 的变体
CP932 code page 932, 日语 Microsoft Windows 的 Shift-JIS 变体
CP936 code page 936,用于简体中文的微软操作系统风格的 GB2312,GBK 或者 GB18030 的变体
CP949 code page 949,用于韩语的微软操作系统风格的 EUC-KR 或者 Unified Hangul Code 的变体
CP950 code page 950,用于繁体中文的微软操作系统风格的 Big5 的变体
CP1251 code page 1251,用于西里尔字母的微软操作系统风格的编码
CP1252 code page 1252,用于西欧语言的微软操作系统风格的 ISO-8859-15 的变体
KOI8-R 用于西里尔字母的旧俄语 UNIX 标准
ISO-2022-JP 日文邮件的标准编码,只使用 7 位字节
eucJP 老的日文 UNIX 标准的 8 位字节,和 Shift-JIS 完全不同
Shift-JIS 日文 JIS X 0208 附录 1 标准 (参见 CP932)

注意

一些编码只支持数据转换,它不能作为语言环境的值 (第 8.1 节 “语言环境”)。

像 ASCII 和 ISO-8859 这样适用于单字节的字符集,字符编码和字符集几乎指的是同一件事情。

对于多字符的字符集,比如说,用于日文的 JIS X 0213,或用于差不多所有语言的 Universal Character Set (UCS, Unicode, ISO-10646-1) , 有多种编码方案来序列化它们的字节数据。

  • 日文的 EUC 和 ISO/IEC 2022 (也被称为 JIS X 0202)

  • Unicode 的 UTF-8、UTF-16/UCS-2 和 UTF-32/UCS-4 编码

对于以上这些,字符集和字符编码之间有着明显的区别。

对某些计算机厂家而言,code page 是作为字符编码表的同义词来使用。

注意

请注意,大部分编码系统共享 ASCII 的 7 位字符的同样编码,但也有一些列外。如果你从通常所说的 shift-JIS 编码格式,转化老的日文 C 语言程序和 URL 数据,到 UTF-8 格式,你需要使用 "CP932" 作为编码名来代替 "shift-JIS" 来得到期望的结果: 0x5C → "\" 和 0x7E → "~".否则,这些将被转化为错误的字符。

提示

recode(1) 也可能被使用并且不仅仅是 iconv(1),fromdos(1),todos(1),frommac(1) 和 tomac(1) 功能的结合。想要获得更多信息,请参见 "info recode"。

11.1.2. 用 iconv 检查文件是不是 UTF-8 编码

你能够通过如下命令用 iconv(1) 来检查一个文本文件是不是用 UTF-8 编码的。

$ iconv -f utf8 -t utf8 input.txt >/dev/null || echo "non-UTF-8 found"
提示

在上面的例子中使用 "--verbose" 参数来找到第一个 non-UTF-8 字符。

11.1.3. 使用 iconv 转换文件名

这里是一个示例脚步,在同一目录下,将在老的操作系统系统下创建的文件名编码,转换为现代 UTF-8.

#!/bin/sh
ENCDN=iso-8859-1
for x in *;
 do
 mv "$x" "$(echo "$x" | iconv -f $ENCDN -t utf-8)"
done

"$ENCDN" 变量定义了在老的操作系统下,文件名使用的原始编码,见 表 11.2 “编码值和用法的列表”.

对于更加复杂的情况,请使用适当的编码作为 mount(8) 的选项(参见 第 8.1.3 节 “文件名编码”) 来挂载包含有这样文件名的文件系统(比如说,磁盘上的一个分区),使用 "cp -a" 命令来拷贝它的整个内容到另外一个使用 UTF-8 挂载的文件系统上。

11.1.4. 换行符转换

文本文件的格式,特别是行尾(换行符)编码,有平台独立性。

表 11.3. 不同平台的换行符样式列表

平台 换行符编码 控制码 十进制 16 进制
Debian (unix) LF ^J 10 0A
MSDOS 和 Windows CR-LF ^M^J 13 10 0D 0A
苹果的 Macintosh CR ^M 13 0D

换行符转换程序, fromdos(1), todos(1), frommac(1), 和 tomac(1), 是相当方便. recode(1) 也是有用的。

注意

在 Debian 系统上的一些数据,如 python-moinmoin 软件包的 wiki 页面数据,使用 MSDOS 式样的 CR-LF 作为换行符编码。所以,上面的规则仅仅是一个通用规则。

注意

大部分编辑器 (比如: vim, emacs, gedit, …) 能够透明处理 MSDOS 式样的换行符文件。

提示

对于混合 MSDOS 和 Unix 式样的文件,统一到 MSDOS 换行符式样,使用 "sed -e '/\r$/!s/$/\r/'" 代替 todos(1) 比较好。 (例如,在使用 diff3(1)移植两个 MSDOS 式样的文件后.)这是因为 todos 给所有的行增加 CR.

11.1.5. TAB 转换

这里有一些转换 TAB 代码的专业工具。

表 11.4. bsdmainutilscoreutils 包中的用于转换 TAB 的命令列表

功能 bsdmainutils coreutils
把制表符扩展成空格 "col -x" expand
将空格转换为制表符(unexpand) "col -h" unexpand

indent 包中的 indent(1) 命令能够重新格式化 C 程序中的空格。

例如 vimemacs 这样的编辑软件可以被用来扩展 TAB。就拿 vim 来说,你能够按顺序输入 ":set expandtab" 和 ":%retab" 命令来扩展 TAB。你也可以按顺序输入 :%set noexpandtab" 和 ":%retab" 命令来复原。

11.1.6. 带有自动转换功能的编辑器

vim 这样的现代智能编辑器软件是相当聪明的并且能够处理任何编码系统以及任何文件格式。你应该在支持 UTF-8 编码的控制台上并在 UTF-8 环境下使用这些编辑器来获得最好的兼容性。

以 latin1(iso-8859-1)编码存储的旧西欧语言的 Unix 文本文件,“u-file.txt”,能通过如下所示的用 vim 轻易的编辑。

$ vim u-file.txt

这是可能的因为 vim 的文件编码自动检测机制先假定文件是 UTF-8 编码,如果失败了,则假定它是 latin1 编码。

以 latin2(iso-8859-2) 编码存储的旧波兰语的 Unix 文本文件,“pu-file.txt”,能通过如下所示的用 vim 编辑。

$ vim '+e ++enc=latin2 pu-file.txt'

以 eucJP 编码存储的旧日语的 Unix 文本文件,"ju-file.txt",能通过如下所示的用 vim 编辑。

$ vim '+e ++enc=eucJP ju-file.txt'

以所谓的 shift-JIS 编码 (更确切的说法是:CP932) 存储的旧日语 MS-Windows 文本文件,"jw-file.txt",能通过如下所示的用 vim 编辑。

$ vim '+e ++enc=CP932 ++ff=dos jw-file.txt'

当一个文件用 vim 打开的时候带有 "++enc" 和 "++ff" 选项,在 Vim 命令行输入 ":w" 命令会以原格式存储文件并且会覆盖原文件。你也可以在 Vim 命令行指定存储文件名及其格式,例如,":w ++enc=utf8 new.txt"。

请查阅 vim 在线帮助中的 mbyte.txt,"多字节文本支持"和表 11.2 “编码值和用法的列表”来获得 "++enc" 使用的本地值的信息。

emacs 家族的程序能够实现同样的功能。

11.1.7. 提取纯文本

如下所示读入 web 页面并把它转化成文本文件。当从 Web 中拷贝配置或者是在 web 页面中应用类似 grep(1) 的基础 Unix 文本工具时,以下命令是非常有用的。

$ w3m -dump http://www.remote-site.com/help-info.html >textfile

同样,你可以使用如下所示的工具从其他格式提取纯文本数据。

表 11.5. 用于提取纯文本数据的工具列表

软件包 流行度 大小 关键词 功能
w3m V:25, I:221 2367 html→text 用 "w3m -dump" 命令把 HTML 转化为文本的转换器
html2text V:2, I:27 274 html→text 高级的 HTML 到文本文件的转换器 (ISO8859-1)
lynx V:16, I:113 1949 html→text 用 "lynx -dump" 命令把 HTML 转化为文本的转化器
elinks V:5, I:25 1763 html→text 用 "elinks -dump" 命令把 HTML 转化为文本的转换器
links V:5, I:35 2286 html→text 用 "links -dump" 命令把 HTML 转化为文本的转换器
links2 V:1, I:13 5459 html→text 用 "links2 -dump" 命令把 HTML 转化为文本的转换器
catdoc V:21, I:127 686 MSWord→text,TeX 转化 MSWord 文件到纯文本或 TeX文件
antiword V:1, I:9 589 MSWord→text,ps 转化 MSWord 文件到纯文本或 ps 文件
pstotext V:0, I:2 126 ps/pdf→text 从 PostScript 和 PDF 文件里导出文本
unhtml V:0, I:0 43 html→text 从一个 HTML 文件里面删除标记标签
odt2txt V:1, I:12 60 odt→text 从开放文档格式到文本格式的转化器

11.1.8. 高亮并格式化纯文本数据

你可以通过如下所示的来高亮并格式化纯文本数据。

表 11.6. 高亮纯文本数据的工具列表

软件包 流行度 大小 关键词 说明
vim-runtime V:19, I:427 32763 高亮 用 ":source $VIMRUNTIME/syntax/html.vim" Vim 宏命令转化源代码到 HTML
cxref V:0, I:0 1193 c→html 从 C 程序到 latex 和 HTML 的转换器(C语言)
src2tex V:0, I:0 622 高亮 转换许多源代码到 TeX(C语言)
source-highlight V:0, I:7 1991 高亮 转换源代码到带有高亮显示的 HTML, XHTML, LaTeX, Texinfo, ANSI 颜色转义序列和 DocBook 文件 (C++)
highlight V:0, I:8 1079 高亮 转化许多源代码到带有高亮显示的 HTML, XHTML, RTF, LaTeX, TeX or XSL-FO 文件。(C++)
grc V:0, I:4 208 text→有颜色的 用于任何文本的通用颜色生成器 (Python)
pandoc V:9, I:48 151715 text→any 通用标记转化器 (Haskell)
python3-docutils V:14, I:47 1810 text→any 重构文本文档到 XML (Python)
markdown V:0, I:10 57 text→html Markdown 文本文档到 (X)HTML (Perl)
asciidoctor V:0, I:8 99 text→any AsciiDoc 文本文档格式化到 XML/HTML (Ruby)
python3-sphinx V:6, I:21 2763 text→any 基于文档发布系统 (Python)重构文本
hugo V:0, I:4 48225 text→html 基于 Markdown 的静态站点发布系统(Go)

11.2. XML 数据

扩展标记语言 Extensible Markup Language (XML) 是一种标记语言,用于含有结构化信息的文档。

在 XML.COM 查看介绍信息.

  • "什么是 XML?"

  • "什么是 XSLT?"

  • "什么是 XSL-FO?"

  • "什么是 XLink?"

11.2.1. XML 的基本提示

XML 文本看起来有些像 HTML.它能够使我们管理一个文档的多个格式。一个简单的 XML 系统是 docbook-xsl 软件包,在这里使用。

每一个 XML 文件使用下面的标准 XML 声明开始。

XML 元素的基本语法是按下面的方式标记。

content

内容为空的 XML 元素,使用下面的短格式标记。

上面列子中的 "attribute="value"" 是可选的。

XML 里面的注释部分,是按下面的方式标记。

不同于增加标记,XML 至少要求使用预定义实体里的内容来转化下列字符。

表 11.7. XML 预定义实体列表

预定义实体 转化的字符
" " : 引号
' ' : 撇号
< < : 小于号
> > : 大于号
& & :&号

小心

<”或“&”不能在属性(attributes)或元素(elements)中使用。

注意

当 SGML 式样的用户定义实体,比如 "&some-tag;", 被使用的时候,第一个定义会覆盖其它的。实体定义在 ""里表示。

注意

只要 XML 标记是一致使用某一标签名集合(一些数据作为内容或属性值),使用 Extensible Stylesheet Language Transformations (XSLT) 来转换到另外一个 XML,是一个微不足道的任务。

11.2.2. XML 处理

有许多工具可以用于处理 XML 文件,比如说: 可扩展样式表语言 Extensible Stylesheet Language (XSL).

一旦你创建了一个好的成形的 XML 文件,基本上来讲,你就可以使用 可扩展样式表语言转换 Extensible Stylesheet Language Transformations (XSLT),将其转换成任何格式。

格式化对象的可扩展样式表语言 Extensible Stylesheet Language for Formatting Objects (XSL-FO) 是用来作为格式化的解决方案. fop 软件包比 Debian main 档案库要新,因为它依赖 Java 编程语言. LaTeX 代码通常是从 XML 使用 XSLT 生成,LaTeX 系统是用来创建 DVI, PostScript 和 PDF 这类可打印的文件。

表 11.8. XML 工具列表

软件包 流行度 大小 关键词 说明
docbook-xml I:351 2134 xml DocBook 的 XML 文档类型定义(DTD)
docbook-xsl V:11, I:147 14870 xml/xslt 使用 XSLT 将 DocBook XML 处理成各种输出格式的 XSL 样式表
xsltproc V:14, I:93 160 xslt XSLT 命令行处理器 (XML→ XML, HTML, 纯文本,等等)
xmlto V:1, I:20 130 xml/xslt 使用 XSLT 将 XML 转换到任意格式的转换器
fop V:1, I:18 291 xml/xsl-fo 转换 Docbook XML 文件到 PDF
dblatex V:3, I:14 4643 xml/xslt 使用 XSLT 将 Docbook 文件转换为 DVI, PostScript, PDF 文档
dbtoepub V:0, I:0 37 xml/xslt DocBook XML 到 .epub 转换

由于 XML 是 标准通用标记语言 Standard Generalized Markup Language (SGML)的一个子集,用于处理 SGML 的扩展工具,也能够处理 XML,比如说 文档式样语言和规范语言 Document Style Semantics and Specification Language (DSSSL).

表 11.9. DSSSL 工具列表

软件包 流行度 大小 关键词 说明
openjade V:2, I:34 1019 dsssl ISO/IEC 10179:1996 标准 DSSSL 处理器 (最新的)
docbook-dsssl V:1, I:19 2605 xml/dsssl 使用 DSSSL 处理 DocBook XML 到各种输出格式的 DSSSL 样式表
docbook-utils V:0, I:14 287 xml/dsssl DocBook 文件的工具包,包括使用 DSSSL 的转换成其它格式 (HTML, RTF, PS, man, PDF)的 docbook2* 命令
sgml2x V:0, I:0 90 SGML/dsssl SGML 和 XML 使用 DSSSL 样式表的转换器

提示

GNOME 的 yelp 往往能够方便的直接读取 DocBook XML 文件,这是因为它可以从 X 获得适当的渲染。

11.2.3. XML 数据提取

使用下面的方法,你能够从其它格式提取 HTML 或 XML 数据。

表 11.10. XML 数据提取工具列表

软件包 流行度 大小 关键词 说明
man2html V:0, I:2 138 man 手册页→html 从 man 手册页到 HTML 的转换器(支持 CGI)
doclifter V:0, I:0 451 troff→xml troff 到 DocBook XML 的转换器
texi2html V:0, I:7 1833 texi→html 从 Texinfo 到 HTML 的转换器
info2www V:1, I:2 76 info→html 从 GNU info 到 HTML 的转换器 (支持 CGI)
wv V:0, I:6 717 MSWord→任何格式 从微软 Word 格式到 HTML, LaTeX, 等格式的文件转换器。
unrtf V:0, I:4 148 rtf→html 从 RTF 到 HTML 等的转换器
ooo2dbk V:0, I:0 217 sxw→xml 从 OpenOffice.org SXW 文档到 DocBook XML 的转换器
wp2x V:0, I:0 202 WordPerfect→任意格式 WordPerfect 5.0 和 5.1 文件到 TeX, LaTeX, troff, GML 和 HTML

11.2.4. XML 数据检查

对于非 XML 的 HTML 文件,你能够转换它们为 XHTML,XHTML 是一个相当成型的 XML 实例。XHTML 能够被 XML 工具处理.

XML 文件的语法和在它们中发现的 URL 的完整性,能够被检查。

表 11.11. XML 美化打印工具列表

软件包 流行度 大小 功能 说明
libxml2-utils V:20, I:224 186 xml↔html↔xhtml 使用 xmllint(1) 的 XML 命令行工具 (语法检查,重新格式化,梳理, …)
tidy V:1, I:12 84 xml↔html↔xhtml HTML 语法检查和重新格式化
weblint-perl V:0, I:1 32 检查 用于 HTML 的小巧的语法检查器
linklint V:0, I:0 344 链接检查 快速的网站维护工具及链接检查器

一旦适当的 XML 生成,基于标记的内容等,你能够使用 XSLT 技术提取数据。

11.3. 排版

Unix上的 troff 程序最初是由 AT&T 公司开发的,可以被用做简单排版。现在被用来创建手册页。

Donald Knuth 发明的 Tex 是非常强大的排版工具也是实际上的标准。最初是由 Leslie Lamport 开发的 LaTex 使得用户可以更为方便的利用 Tex 的强大功能。

表 11.12. 排版工具的列表

软件包 流行度 大小 关键词 说明
texlive V:4, I:44 72 (La)TeX 用于排版、预览和打印的 TeX 系统
groff V:4, I:53 11870 troff GNU troff 文本格式化系统

11.3.1. roff 排版

传统意义上,roff 是 Unix 上主要的文本处理系统。参见 roff(7), groff(7), groff(1), grotty(1), troff(1), groff_mdoc(7), groff_man(7), groff_ms(7), groff_me(7), groff_mm(7) 和 "info groff"。

安装好 groff 软件包以后,你输入 "-me" 宏指令就能看到一份不错的指导手册,它的位置是 "/usr/share/doc/groff/"。

提示

"groff -Tascii -me -" 输出带有 ANSI 转义码的纯文本。如果你想要 manpage 的输出带有许多 "^H" 和 "_",那么使用替代命令 "GROFF_NO_SGR=1 groff -Tascii -me -"。

提示

如果想要移除 groff 生成的文本文件中的 "^H" 和 "_",使用 "col -b -x" 来过滤它。

11.3.2. TeX/LaTeX

Tex Live 软件提供了全部的 TeX 系统。texlive 元包只是 TeX Live 中的一部分,但是它足够应付日常任务。

这里有许多可用的 TeX 和 LaTeX 的参考资料。

  • The teTeX HOWTO: The Linux-teTeX Local Guide

  • tex(1)

  • latex(1)

  • texdoc(1)

  • texdoctk(1)

  • "The TeXbook", 作者 Donald E. Knuth, (Addison-Wesley)

  • "LaTeX - A Document Preparation System", 作者 Leslie Lamport, (Addison-Wesley)

  • "The LaTeX Companion", 作者 Goossens, Mittelbach, Samarin, (Addison-Wesley)

这是最强大的排版环境。许多 SGML 处理器把它作为其后台字处理工具。lyx 软件包提供的 Lyx 和 texmacs 软件包提供的 GNU TeXmacs 都为 LaTeX 提供了非常不错的所见即所得的编辑环境,然而许多人使用 Emacs 和 Vim 作为其源代码编辑器。

有许多在线资源存在。

  • TEX Live Guide - TEX Live 2007 ("/usr/share/doc/texlive-doc-base/english/texlive-en/live.html") (texlive-doc-base 包)

  • Latex/Lyx 的一个简单指引

  • 使用 LaTeX 进行文字处理

  • teTeX/LaTeX 的本地用户指引

当文档变得更大时,TeX 有时会出错。你必须在 "/etc/texmf/texmf.cnf" 中增加 pool 的大小 (更确切的说话是编辑是 "/etc/texmf/texmf.d/95NonPath" 并且运行 update-texmf(8)) 来修复此问题。

注意

"The TeXbook" 的 TeX 源码可以从 http://tug.ctan.org/tex-archive/systems/knuth/dist/tex/texbook.tex 上下载。此文件包含了绝大多数所需的宏指令。我听说把文档中的第7到第10行注释了并且添加 "\input manmac \proofmodefalse",就可以用 tex(1) 来处理此文档。我强烈建议去购买这本书 (还有 Donald E. Knuth 写的其他书) 而不是使用在线版本,但是在线版本中的源码确实是学习 Tex 输入很好的例子!

11.3.3. 漂亮的打印手册页

你能够用如下任意一个命令在打印机上漂亮的打印手册页。

$ man -Tps some_manpage | lpr

11.3.4. 创建手册页

尽管用纯 troff 格式写手册页(manpage)是可能的,这里还是有一些辅助的程序包用于创建手册页。

表 11.13. 创建手册页的工具列表

软件包 流行度 大小 关键词 说明
docbook-to-man V:0, I:11 191 SGML→man 手册页 从 DocBook SGML 到 roff 手册页宏指令的转换器
help2man V:0, I:9 509 text→man 手册页 通过 --help 参数自动生成手册页的工具
info2man V:0, I:0 135 info→man 手册页 转换 GNU info 到 POD 或手册页的转换器
txt2man V:0, I:1 114 text→man 手册页 把纯粹的 ASCII 文本转化为手册页格式

11.4. 可印刷的数据

在 Debian 系统中,可打印的数据是 PostScript 格式的。对于非 PostScript 打印机,通用 Unix 打印系统 (CUPS) 使用 Ghostscript 作为其后台光栅处理程序。

11.4.1. Ghostscript

处理可印刷的数据的核心是 Ghostscript PostScript 解释器,它能够生成光栅图像。

表 11.14. Ghostscript PostScript 解释器列表

软件包 流行度 大小 说明
ghostscript V:202, I:531 234 GPL Ghostscript PostScript/PDF 解释器
ghostscript-x V:8, I:60 226 GPL Ghostscript PostScript/PDF 解释器-X 显示支持
libpoppler102 V:147, I:277 4274 PDF 渲染库 (xpdf PDF 浏览器的分支)
libpoppler-glib8 V:254, I:478 445 PDF 渲染库(基于 Glib 的共享库)
poppler-data V:112, I:620 13089 用于 PDF 渲染库的 CMaps (CJK 支持:Adobe-*)

提示

"gs -h" 能够显示 Ghostscript 的配置信息。

11.4.2. 合并两个 PS 或 PDF 文件

你能够使用 Ghostscript 中的 gs(1) 来合并两个 PostScript(PS) 或可移植文档格式(PDF) 文件。

$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=bla.ps -f foo1.ps foo2.ps
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f foo1.pdf foo2.pdf
注意

PDF 是用途很广的跨平台可印刷的数据格式,它本质上是带有一些额外特性和扩展的压缩了的 PS 格式。

提示

对于命令行来说,psmerge(1) 和 psutils 包中的其他命令在处理 PostScript 文档时是很有用的。pdftk 包中的 pdftk(1) 在处理 PDF 文档的时候同样是很好用的。

11.4.3. 处理可印刷数据的工具

如下是处理可印刷数据的工具列表。

表 11.15. 处理可印刷数据的工具列表

软件包 流行度 大小 关键词 说明
poppler-utils V:195, I:367 689 pdf→ps,text,… PDF 工具:pdftops, pdfinfo, pdfimages, pdftotext, pdffonts
psutils V:6, I:91 219 ps→ps PostScript 文件转换工具
poster V:0, I:4 58 ps→ps 用 PostScript 页制作大型海报
enscript V:1, I:18 2132 text→ps, html, rtf 转化 ASCII 文本到 PostScript, HTML, RTF 或 Pretty-Print
a2ps V:1, I:14 3648 text→ps '任何文本到 PostScript' 的转换器并且也是相当不错的打印程序
pdftk I:49 28 pdf→pdf PDF 文档转换工具:pdftk
html2ps V:0, I:3 261 html→ps 从 HTML 到 PostScript 的转换器
gnuhtml2latex V:0, I:1 27 html→latex 从 html 到 latex 的转换器
latex2rtf V:0, I:5 480 latex→rtf 转换 LaTeX 文档到能被 Microsoft Word 读取的 RTF 格式的文档
ps2eps V:3, I:56 99 ps→eps 从 PostScript 到 EPS(Encapsulated PostScript)的转换器
e2ps V:0, I:0 109 text→ps 带有日文编码支持的文本到 PostScript 转换器
impose+ V:0, I:0 119 ps→ps PostScript 工具
trueprint V:0, I:0 146 text→ps 漂亮的打印许多源程序(C, C++, Java, Pascal, Perl, Pike, Sh, 和 Verilog)到 PostScript。(C 语言)
pdf2svg V:0, I:4 30 ps→svg PDF 到可升级的向量图形格式的转换器
pdftoipe V:0, I:0 70 ps→ipe 从 PDF 到 IPE‘s XML 格式的转换器

11.4.4. 用 CUPS 打印

Unix 通用打印系统(CUPS) 中的 lp(1) 和 lpr(1) 命令都提供了自定义打印数据的选项。

你可以使用下列命令中的一个来打印 3 份有装订页码的文件。

$ lp -n 3 -o Collate=True filename
$ lpr -#3 -o Collate=True filename

你能够通过 "-o number-up=2", "-o page-set=even", "-o page-set=odd", "-o scaling=200", "-o natural-scaling=200" 等等打印机选项来进一步定制打印机操作,详细的文档参见命令行打印和选项。

11.5. 邮件数据转换

下列邮件数据转换软件包捕获了我的眼球。

表 11.16. 有助于邮件数据转换的软件包列表

软件包 流行度 大小 关键词 说明
sharutils V:3, I:47 1421 邮件 shar(1), unshar(1), uuencode(1), uudecode(1)
mpack V:1, I:16 107 MIME 编码和解码 MIME 信息: mpack(1) 和 munpack(1)
tnef V:1, I:9 110 ms-tnef 解包 MIME 附件类型 "application/ms-tnef",该格式仅由微软使用
uudeview V:0, I:4 109 邮件 下列格式的编码器和解码器: uuencode, xxencode, BASE64, quoted printable 和 BinHex

提示

如果邮件客户端可以配置使用 IMAP4 服务器,互联网消息访问协议 版本 4 (IMAP4) 服务器可以用来把邮件从专有邮件系统里面移出来。

11.5.1. 邮件数据基础

邮件 (SMTP) 数据需要被限制为 7 位数据序列。二进制数据和 8 位文本数据使用 Multipurpose Internet Mail Extensions (MIME) 互联网多用途邮件扩展 和选择的字符集编码到 7 位格式。(参见 表 11.2 “编码值和用法的列表”)。

标准的邮件存储格式是 mbox,它是依据 RFC2822 (由 RFC822 更新) 来的格式. 参见 mbox(5) (由 mutt 软件包提供).

对于欧洲语言,由于没有什么 8 位字符,"Content-Transfer-Encoding: quoted-printable" 加 ISO-8859-1 字符集通常被用于邮件。如果欧洲文本是被编码为 UTF-8,由于几乎全是 7 位数据,使用 "Content-Transfer-Encoding: quoted-printable" 也是合适的。

对于日语,传统的 "Content-Type: text/plain; charset=ISO-2022-JP" 通常被用于邮件来保持文本在 7 位。但是老的微软系统会在没有声明的情况下使用 Shift-JIS 来发送邮件。如果日语文本是用 UTF-8 编码, 由于含有许多 8 位数据,使用 Base64 是合适的。其它亚洲语言也是类似情形。

注意

如果你的非 Unix 邮件数据可以通过一个具备和 IMAP4 服务通讯的非 Debian 客户端访问,你可以通过运行你的 IMAP4 服务来将邮件数据移出。

注意

如果你使用其它邮件存储格式,第一步把它们移动到 mbox 格式比较好。像 mutt(1) 这样多功能的客户端程序可以便捷的完成这类操作。

你可以使用 procmail(1) 和 formail(1) 把邮箱内容分开成每一封邮件.

每一封邮件能够使用来自 mpack 软件包的 munpack(1) 命令(或其它特异的工具)来获得 MIME 编码内容。

11.6. 图形数据工具

如下是关于图形数据转换、编辑和管理的工具包。

表 11.17. 图形数据工具列表

软件包 流行度 大小 关键词 说明
gimp V:61, I:300 19827 图形(位图) GNU 图形处理程序
imag

文章名称:【Debian参考手册】第 11 章 数据转换
URL网址:http://www.36103.cn/qtweb/news4/11554.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联