打印机

本文详细介绍了Windows打印API的使用方法,包括如何获取打印机信息、设置打印参数、开始和结束打印任务,以及如何取消打印等。此外,还提供了一个简单的AbortProc函数示例,用于在打印过程中接收取消请求。

 

打印机信息

OpenPrinter (szDevice, &hPrint, NULL):得到打印机szDevice的句柄

PrinterProperties (hwnd, hPrint):打开打印机属性页,也可以用驱动提供的ExtDeviceMode或ExtDeveModePropSheet函数,但推荐这个。

ClosePrinter(hPrint)

GetDeviceCaps(hdcInfo,index):获取设备参数。RASTERCAPS返回打印机是否支持位块(bit-block)转换,在部分点阵、激光、喷墨打印机都支持,但绘图仪不支持,不支持的设备不能用以下GDI函数:CreateCompatibleDC,CreateCompatibleBitmap,PatBlt,BitBlt,StretchBlt,GrayString,DrawIcon,SetPixel,GetPixel,FloodFill,ExtFloodFill,FillRgn,FrameRgn,InvertRgn,PaintRgn,FillRect,FrameRect和InvertRect。HORZRES和VERTES返回水平和垂直像素数,返回的不是整个页面,而是可打印区域的像素

PrintDlg(&pd):pd是PRINTDLG结构体,打开打印参数设置对话框。

 

打印

CreateDC(NULL,szDeviceName,NULL,pInitData):pInitData一般也为NULL,szDeviceName是打印机名称,用EnumPrinters获得

StartDoc(hdcPrinter)

EndDoc(hdcPrinter):如果打印出错,不需要调用,系统自动重围打印机。

StartPage(hdcPrinter)

EndPage(hdcPrinter)

示例代码: 

 

取消打印

SetAbortProc(hdcPrinter,AbortProc):打印前(StartDoc前)必须用这个函数注册,AbortProc定义方式:BOOL CALLBACK AbortProc(HDC hdcPrn,int iCode)。在调用EndPage时,GDI模块会调用AbortProc,如果打印正常,iCode为0,如果要继续打印返回TRUE,取消打印返回FALSE,返回FALSE,EndPage并不认为是打印出错,而是打印完成。一个简单的AbortProc例子bUserAbort是全局变量,表示是否取消。hDlgPrint是一个模式对话框句柄。

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值