1. 什么是打印语言?
打印机语言指的是控制打印机工作的命令,它告诉打印机如何组织被打印的文档,打印机按照这些命令来处理计算机传来的打印数据,并最终准确的打印出文字与图像。
打印机语言大体上可分为两类:一种是页面描述语言(PDL),另一种是嵌入式语言(Escape码语言)。它们的代表分别是Adobe公司的Postscript语言和Hp公司的PCL语言,它们是已经成为业界标准的两种打印机语言。
PostScript是一种与设备无关的打印机语言,即在定义图像时可以根本不考虑输出设备的特性(如打印机的分辨率、纸张大小等),而且它对文本和图形实行同样的处理过程,这就给处理字体带来了极大的灵活性。
当然除了这两种打印机语言之外许多厂商都使用自己的打印机控制语言,如爱普生(Epson)的Esc/Page,佳能的Capsyl,施乐的Xes、Jdl,Ibm的Ipds,Dec的Ansi/Sixel等,它们都各具特点。
https://product.pconline.com.cn/itbk/wlbg/office/1803/10953138.html 什么是打印机语言 打印机语言介绍
打印机页面描述语言
PCL:HP制定;
GDI:微软制定;
PS:Adobe公司制定,适用于图形界面高端设备;
2.为什么需要打印语言?
电脑中的素材包括文档等,是不能被打印机直接拿来用的,需要转化成打印机能用的数据,通过打印语言。
https://blog.csdn.net/flit/article/details/83611259 PCL 语言 指令集
3.为什么需要驱动?
打印机的语言有很多种,每个厂商定义的打印机的驱动也有很多种接口。application需要针对每一种打印机开发不同的输出程序。为了解决这个问题,操作系统制定DDI device driver interface接口,应用无需考虑设备,只需要调用GDI函数。
4.
4.1 应用程序调用Windows 32 API
应用程序调用DeviceCapabilities或GetDevCap函数
https://baike.baidu.com/item/DeviceCapabilities/6379915?fr=aladdin DeviceCapabilities是WinAPI的一部分
4.2 Windows API 调用 驱动(内核模式)
打印机厂商首先接口的驱动实现。
https://blog.csdn.net/HorseRoll/article/details/86000194 ToShiBa东芝打印机编程C#–发送指令打印
https://wenku.baidu.com/view/773a6c3f0912a2161479295a.html 打印机驱动如何工作