diff options
Diffstat (limited to 'zh_CN.GB2312/books/handbook/printing/chapter.sgml')
-rw-r--r-- | zh_CN.GB2312/books/handbook/printing/chapter.sgml | 130 |
1 files changed, 64 insertions, 66 deletions
diff --git a/zh_CN.GB2312/books/handbook/printing/chapter.sgml b/zh_CN.GB2312/books/handbook/printing/chapter.sgml index a4eb2b40e4..2571ac414a 100644 --- a/zh_CN.GB2312/books/handbook/printing/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/printing/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.102 + Original Revision: 1.111 $FreeBSD$ --> @@ -1367,26 +1367,20 @@ $%&'()*+,-./01234567 <itemizedlist> <listitem> - <para><link linkend="printing-advanced-filters">过滤器是怎样 - 工作的</link>, 设法给出一个过滤器在打印过程中的 - 大致角色。 您应该阅读这节来理解 - 在 <application>LPD</application> 使用过滤器时 - <quote> 表面上看不到 </quote> 的事情。 这个知识 - 能够帮您预期 - 并调试您在为每个打印机安装越来越多的过滤器 - 时可能遇到的问题。</para> + <para>在 <link linkend="printing-advanced-filters">过滤器是如何工作的</link> + 小节中将介绍在打印过程中过滤器的作用。 + 如果希望了解在 <application>LPD</application> 使用过滤器时, + 在 <quote>幕后</quote> 发生的事情, 便应阅读这一小节。 + 了解这些知识能够帮助您在为打印机安装过滤器时更快地排查可能会遇到的各种问题。</para> </listitem> <listitem> - <para><application>LPD</application> 默认每个打印机都能 - 打印 - 纯文本。 这就出现一个问题在 &postscript; (或者基于其他 - 语言的打印机) 以及所有无法直接打印纯文本的打印机。 - <link - linkend="printing-advanced-if-conversion">让 - &postscript; 打印机适应纯文本任务 </link> 这节将告诉您 - 要解决这个问题应该做些什么。 如果您使用一台 - &postscript; 打印机, 那么您应该阅读这个小节。</para> + <para><application>LPD</application> 假定任何打印机在默认状态下均能打印纯文本内容。 + 对于不能直接打印纯文本的 &postscript; 打印机 (以及其他基于打印语言的打印机) + 而言这会带来问题。 在 <link + linkend="printing-advanced-if-conversion">在 &postscript; 打印机上使用纯文本任务</link> + 这节中将会介绍如何解决这个问题的方法。 如果您使用 + &postscript; 打印机, 就应阅读这节内容。</para> </listitem> <listitem> @@ -1402,15 +1396,13 @@ $%&'()*+,-./01234567 <listitem> <para><link - linkend="printing-advanced-convfilters">转换 - 过滤器</link> 这节讲述了一个自动把 - 指定格式文件, 比如图像或排版数据, - 转换成您打印机可以理解的格式。 在阅读了这节 - 之后, 您应该可以设置好您的打印机使得用户可以 - 输入 <command>lpr -t</command> 来打印带有不同宏定义库的文本, 或者用 - <command>lpr -d</command> 来打印 &tex; DVI 数据, 用 <command>lpr - -v</command> 来打印光栅图像数据, 等等。 我推荐您 - 阅读这节。</para> + linkend="printing-advanced-convfilters">转换过滤器</link> + 这节讲述了一个自动把指定格式文件, 比如图像或排版数据, + 转换成您打印机可以理解的格式的方法。 在阅读了这节之后, + 您就应该可以配置打印机, 让用户可以用 <command>lpr -t</command> + 来打印 troff 数据、 用 + <command>lpr -d</command> 来打印 &tex; DVI 数据, 或用 <command>lpr + -v</command> 来打印光栅图像数据等工作了。 建议您阅读这节。</para> </listitem> <listitem> @@ -1481,14 +1473,13 @@ $%&'()*+,-./01234567 , 处理 常规的文本打印。 可以把它想象成默认过滤器。 <application>LPD</application> - 默认每台打印机都可以打印纯文本, - 而文本过滤器的任务就是来搞定退格、跳格, - 或者其他在某种打印机上容易错误的特殊字符。 如果您 - 所在的环境对打印机的使用情况进行 - 记帐, 那么文本过滤器必须也对打印进行统计, - 统计通常是通过对打印的行数进行计数然后与打印机所支持的每页的行数做比较后 - 得出的。 文本过滤器 - 的启动命令为: + 假定每台打印机默认情况下都可以打印纯文本, + 而文本过滤器的任务就是来搞定退格、 跳格, + 或者其他在某种打印机上容易错误的特殊字符。 + 如果您所在的环境对打印机的使用情况进行记帐, + 那么文本过滤器必须也对打印的页数进行统计, + 通常是根据打印的行数和打印机在每页上能打印的行数进行计算得出。 + 文本过滤器的启动命令为:</para> <cmdsynopsis> <command>filter-name</command> @@ -1501,8 +1492,8 @@ $%&'()*+,-./01234567 <arg choice="plain"><replaceable>acct-file</replaceable></arg> </cmdsynopsis> - where - + <para>这里</para> + <variablelist> <varlistentry> <term><option>-c</option></term> @@ -1565,7 +1556,6 @@ $%&'()*+,-./01234567 </listitem> </varlistentry> </variablelist> - </para> </listitem> <indexterm> @@ -1580,7 +1570,7 @@ $%&'()*+,-./01234567 文件转换成一种打印机可以识别和打印的形式。 请参见 <link linkend="printing-advanced-convfilters">转换过滤器</link> 这一节来了解更多细节。 如果您需要对打印进行记帐, - 那么转换过滤器也必须完成记帐工作。 转换过虑器的启动命令为: + 那么转换过滤器也必须完成记帐工作。 转换过虑器的启动命令为:</para> <cmdsynopsis> <command>filter-name</command> @@ -1592,18 +1582,18 @@ $%&'()*+,-./01234567 <arg choice="plain"><replaceable>acct-file</replaceable></arg> </cmdsynopsis> - <replaceable>pixel-width</replaceable> 的值来自 - <literal>px</literal> 标签 (默认为 0), + <para>这其中 <replaceable>pixel-width</replaceable> 的值来自 + <literal>px</literal> 标签 (默认为 0), 而 <replaceable>pixel-height</replaceable> 的值来自 <literal>py</literal> 标签 (默认为 0)。</para> </listitem> <listitem> - <para><emphasis> 输出过滤器 </emphasis> 仅在没有文本过滤器 - 时, 或者报头页被打开时使用. 就我的 - 经验而言, 输出过滤器是很少用到的. 在<link - linkend="printing-advanced-of"> 输出过滤器 </link> 这节中会 - 介绍它们. 启动输出过滤器的命令行只有两个参数: + <para><emphasis> 输出过滤器 </emphasis> 仅在没有文本过滤器时, + 或者报头页被打开时使用。 就我们的经验而言, + 输出过滤器是很少用到的. 在 <link + linkend="printing-advanced-of">输出过滤器</link> 这节中会介绍它们。 + 启动输出过滤器的命令行只有两个参数:</para> <cmdsynopsis> <command>filter-name</command> @@ -1611,8 +1601,8 @@ $%&'()*+,-./01234567 <arg choice="plain">-l <replaceable>length</replaceable></arg> </cmdsynopsis> - <option>-w</option> 和 - <option>-l</option> 参数的意义和文本过滤器中的一样。</para> + <para>它们的作用与文本过滤器的 <option>-w</option> 和 + <option>-l</option> 参数是一样的。</para> </listitem> </itemizedlist> @@ -1701,8 +1691,10 @@ $%&'()*+,-./01234567 <para><command>lprps</command> 可以在 FreeBSD Ports Collection (详见 <link linkend="ports">The Ports Collection</link>) 中找到。 - 您当然可以自己获取, 构建并安装它。 在安装之后 - <command>lprps</command>, 只需指定 + 你可以根据页面的尺寸选择安装 + <filename role="package">print/lprps-a4</filename> + 和 <filename role="package">print/lprps-letter</filename>。 + 在安装了 <command>lprps</command> 之后, 只需指定 <command>psif</command> 这个程序的路径, 这也是包含在 <command>lprps</command> 中的一个程序。 如果您已经用 ports 安装好了 <command>lprps</command>, 将下面的内容添加到 @@ -1758,28 +1750,34 @@ fi</programlisting> </indexterm> <indexterm> <primary>Ghostscript</primary></indexterm> + <para>&postscript; 是高质量排版和打印 <emphasis>事实上的</emphasis> 标准。 而 &postscript; 也是一个 <emphasis> 昂贵 </emphasis> 的标准。 幸好, Aladdin 开发了一个和 &postscript; 类似的叫做 <application>Ghostscript</application> 的程序可以用在 FreeBSD 上。 - Ghostscript 可以读取大多数 &postscript; 的文件并处理其中的页面交给多种设备, - 包括许多品牌的非 - PostScript 打印机。 通过安装 Ghostscript 并使用一个特殊的文本过滤器, - 则可以使一台非 &postscript; 打印机用起来就像真的 &postscript; 打印机一样。</para> + <application>Ghostscript</application> 可以读取大多数 &postscript; + 的文件并处理其中的页面交给多种设备,包括许多品牌的非 &postscript; + 打印机。 通过安装 <application>Ghostscript</application> + 并使用一个特殊的文本过滤器,则可以使一台非 &postscript; + 打印机用起来就像真的 &postscript; 打印机一样。</para> - <para>Ghostscript 也包括在 FreeBSD Ports Collection 中, - 如果您想要从这里安装。 您同样可以很容易地获取, 构建, 并安装它。</para> + <para><application>Ghostscript</application> 被收录在 + FreeBSD Ports Collection 中,有许多可用的版本, + 比较常用的版本是 + <filename role="package">print/ghostscript-gpl</filename>。</para> <para>要模拟 &postscript;, 文本过滤器要检测是否要打印一个 &postscript; 文件。 如果不是, 那么过滤器将直接将文件发送到打印机; - 否则, 它会用 Ghostscript 先将文件转换成打印机可以理解的格式。</para> + 否则, 它会用 <application>Ghostscript</application> + 先将文件转换成打印机可以理解的格式。</para> <para>这里有一个例子: 下面的脚本是一个针对 Hewlett Packard DeskJet 500 打印机的文本过滤器。 对于其他打印机, - 替换 <command>gs</command> (Ghostscript) 命令中的 <option>-sDEVICE</option> 参数 - 就可以了。 (输入 <command>gs - -h</command> 来获得当前安装的 Ghostscript 所支持的设备列表。)</para> + 替换 <command>gs</command> (<application>Ghostscript</application>) + 命令中的 <option>-sDEVICE</option> 参数就可以了。 (输入 + <command>gs -h</command> 来获得当前安装的 + <application>Ghostscript</application> 所支持的设备列表。)</para> <programlisting>#!/bin/sh # @@ -1981,7 +1979,7 @@ exit 2</programlisting> 一台叫做 <literal>bamboo</literal> 的打印机添加一个转换过滤器。 下面是这个例子的 <filename>/etc/printcap</filename> 文件, 其中使用新变量 <literal>df</literal> 来为打印机 - <literal>bamboo</literal> 设置转换过滤器.</para> + <literal>bamboo</literal> 设置转换过滤器:</para> <programlisting># # /etc/printcap for host rose - added df filter for bamboo @@ -2018,14 +2016,14 @@ exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"</programlisting> &postscript; 打印机上打印纯文本任务</link> 这一节), 并且带着 <application>LPD</application> 传给脚本的全部参数。 <command>lprps</command> - 将利用这些参数来为打印进行记帐。</para> + 工具将利用这些参数来为打印进行记帐。</para> </sect4> <sect4> <title>更多转换过滤器应用实例</title> <para>因为安装转换过滤器的步骤并不是固定的, - 所以这里会多给出一些例子。 + 所以这节介绍了一些可行的例子。 在以后的安装配置过程中可以以这些例子为参考。 甚至如果合适的话, 可以完全照搬过去。</para> @@ -2117,12 +2115,12 @@ exit 2</programlisting> <para>现在, 该困难的部分了: 编写过滤器。 为了实现过滤器, 我们需要一个 DVI-到-LaserJet/PCL 转换程序。 FreeBSD Ports Collection (详见 <link linkend="ports">Ports Collection</link> 这一节) - 中有一个包: <command>dvi2xx</command> 是这个包的名称。 - 安装这个包就会得到我们需要的程序, + 中有一个: <filename role="package">print/dvi2xx</filename>。 + 安装这个 port 就会得到我们需要的程序, <command>dvilj2p</command> , 它可以将 DVI 数据转换成 LaserJet IIp, LaserJet III, 和 LaserJet 2000 兼容的数据。</para> - <para><command>dvilj2p</command> 使得过滤器 + <para><command>dvilj2p</command> 工具使得过滤器 <command>hpdf</command> 变得十分复杂, 因为 <command>dvilj2p</command> 不能读取标准输入。 它需要从文件中读取数据。 更糟糕的是, 这个文件的名字必须以 |