Windows应用程序如何调用驱动:打印机举例

本文介绍了Windows应用程序如何调用打印机驱动。打印机语言,如PostScript和PCL,是控制打印机工作的关键。打印语言允许将电脑中的文档转化为打印机可以理解的数据。由于各种打印机有不同的语言和接口,操作系统通过DDI(Device Driver Interface)使得应用程序能够调用GDI函数,而无需关心具体设备。Windows API中的DeviceCapabilities函数用于获取打印机能力,而驱动则在内核模式下实现厂商接口。

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

应用程序调用DeviceCapabilitiesGetDevCap函数

https://baike.baidu.com/item/DeviceCapabilities/6379915?fr=aladdin DeviceCapabilities是WinAPI的一部分

4.2 Windows API 调用 驱动(内核模式)

打印机厂商首先接口的驱动实现。

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/print/win32-api-support-for-print-capabilities

https://blog.csdn.net/HorseRoll/article/details/86000194  ToShiBa东芝打印机编程C#--发送指令打印

https://wenku.baidu.com/view/773a6c3f0912a2161479295a.html 打印机驱动如何工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值