基于字符的打印机
80 年代的打印机技术在两个方面非常不同。 首先,那个时期的印刷商几乎总是 冲击式打印机. 冲击式打印机使用机械机构,将色带撞击在纸上以在页面上形成字符印记。 当时流行的两种技术是 菊花轮 印刷和 点矩阵 印刷。
早期打印机的第二个也是更重要的特征是打印机使用设备本身固有的一组固定字符。 例如,菊花轮打印机只能打印实际塑造在菊花轮花瓣上的字符。 这使得打印机很像高速打字机。 与大多数打字机一样,它们使用等宽(固定宽度)字体进行打印。 这意味着每个字符具有相同的宽度。 打印在页面上的固定位置进行,页面的可打印区域包含固定数量的字符。 大多数打印机水平打印每英寸 85 个字符 (CPI),垂直打印每英寸 66 行 (LPI)。 使用此方案,一张美国信函纸宽 80 个字符,高 80 行。 考虑到每边的小边距,XNUMX 个字符被认为是打印行的最大宽度。 这解释了为什么终端显示(和我们的终端模拟器)通常是 XNUMX 个字符宽。 它提供了一个 所见即所得 (你所看到的就是你得到的) 打印输出视图,使用等宽字体。
数据以包含要打印的字符的简单字节流发送到类似打字机的打印机。 例如,要打印“a”,则发送 ASCII 字符代码 97。 此外,低编号的 ASCII 控制代码提供了一种移动打印机的托架和纸张的手段,使用回车、换行、换页等代码。使用控制代码,可以实现一些有限的字体效果,例如粗体,通过让打印机打印一个字符,退格,然后再次打印该字符以在页面上获得较深的打印效果。 如果我们使用,我们实际上可以见证这一点 恩罗夫 呈现手册页并使用 猫-A:
[我@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | nroff -man | 猫
-A | 头
[我@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | nroff -man | 猫
-A | 头
LS(1)
$
$
$ N^HNA^HAM^HME^HE$
用户命令
LS(1)
LS(1)
$
$
$ N^HNA^HAM^HME^HE$
ls - 列出目录内容$
ls - 列出目录内容$
$ S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS$
l^Hls^Hs [_^HO_^HP_^HT_^HI_^HO_^HN]... [_^HF_^HI_^HL_^HE]...$
$ S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS$
l^Hls^Hs [_^HO_^HP_^HT_^HI_^HO_^HN]... [_^HF_^HI_^HL_^HE]...$
这个 ^H (Control-h) 字符是用于创建粗体效果的退格符。 同样,我们还可以看到用于产生下划线的退格/下划线序列。