> For the complete documentation index, see [llms.txt](https://handbook.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handbook.bsdcn.org/di-11-zhang-da-yin/11.3.-chang-jian-de-ye-mian-miao-shu-yu-yan.md).

# 11.3.常见的页面描述语言（PDL）

发送到打印机的数据必须采用打印机能理解的语言。这些语言称为页面描述语言，或称 PDL。

**ASCII**

普通 `ASCII` 文本是发送数据到打印机的最简单方式。字符与将要打印的内容一一对应：数据中的 `A` 打印出来的就是 `A`。可用的格式化选项非常少。无法选择字体或比例间距。普通 `ASCII` 的强制简化意味着文本可以直接从计算机打印，几乎不需要编码或翻译。打印输出与发送的内容直接对应。

一些廉价打印机无法打印普通 `ASCII` 文本。这使得它们的设置变得更加困难，但通常仍然可以实现。

**PostScript®**

PostScript® 几乎是 `ASCII` 的对立面。它不是简单的文本，而是一组绘制最终文档的指令。可以使用不同的字体和图形。然而，这种强大功能是有代价的。绘制页面的程序必须专门编写。通常，这个程序由应用软件生成，因此这个过程对用户是不可见的。

廉价打印机有时会省略 PostScript® 兼容性，以节省成本。

**PCL（打印机命令语言）**

`PCL` 是 `ASCII` 的扩展，增加了用于格式化、选择字体和打印图形的转义序列。许多打印机提供 `PCL5` 支持。某些打印机支持更新的 `PCL6` 或 `PCLXL`。这些后续版本是 `PCL5` 的超集，能提供更快的打印速度。

**基于主机**

制造商可以通过为打印机提供简单的处理器和很少的内存来降低打印机的成本。这些打印机不能打印普通文本。相反，文本和图形的位图由主机计算机上的驱动程序绘制，然后发送到打印机。这些称为 *基于主机* 的打印机。

驱动程序与基于主机的打印机之间的通信通常通过专有或未公开的协议，因此它们只能在最常见的操作系统上工作。

## 11.3.1. 将 PostScript® 转换为其他 PDL

许多来自 Ports Collection 和 FreeBSD 工具的应用程序会生成 PostScript® 输出。下表展示了可用于将其转换为其他常见 PDL 的工具：

**表 1. 输出 PDL**

| 输出 PDL           | 生成工具                                                                                    | 备注                                                   |
| ---------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| `PCL` 或 `PCL5`   | [print/ghostscript9-base](https://cgit.freebsd.org/ports/tree/print/ghostscript9-base/) | `-sDEVICE=ljet4` 用于黑白打印，`-sDEVICE=cljet5` 用于彩色打印     |
| `PCLXL` 或 `PCL6` | [print/ghostscript9-base](https://cgit.freebsd.org/ports/tree/print/ghostscript9-base/) | `-sDEVICE=pxlmono` 用于黑白打印，`-sDEVICE=pxlcolor` 用于彩色打印 |
| `ESC/P2`         | [print/ghostscript9-base](https://cgit.freebsd.org/ports/tree/print/ghostscript9-base/) | `-sDEVICE=uniprint`                                  |
| `XQX`            | [print/foo2zjs](https://cgit.freebsd.org/ports/tree/print/foo2zjs/)                     |                                                      |

## 11.3.2. 总结

对于最简单的打印，选择支持 PostScript® 的打印机。支持 `PCL` 的打印机是次优选择。通过 [print/ghostscript9-base](https://cgit.freebsd.org/ports/tree/print/ghostscript9-base/)，这些打印机可以像原生支持 PostScript® 一样使用。直接支持 PostScript® 或 `PCL` 的打印机几乎总是也支持直接打印普通 `ASCII` 文本文件。

像典型的喷墨打印机这样的行式打印机通常不支持 PostScript® 或 `PCL`。它们通常可以打印普通的 `ASCII` 文本文件。[print/ghostscript9-base](https://cgit.freebsd.org/ports/tree/print/ghostscript9-base/) 支持一些打印机使用的 PDL。然而，在这些打印机上打印整个基于图形的页面通常会非常慢，因为需要传输和打印的数据量很大。

基于主机的打印机通常更难设置。有些由于专有 PDL 不能使用。尽量避免使用这些打印机。可以在 <http://www.openprinting.org/printers> 查找不同型号打印机使用的特定 `PDL`。
