使用 Win32 API 将原始数据发送到打印机

02/28/2020

本文内容

本文介绍如何使用 Win32 API 将原始数据发送到打印机。

原始产品版本:  Windows API

原始 KB 数:  138594

摘要

有时,不需要将打印机特定的数据直接发送到打印机,而是绕过驱动程序。 Win32 API 提供了它在本地和网络打印机上的工作方式。 此方法可用于替换 PASSTHROUGH SpoolFile() 在早期版本的 Windows API 中使用的转义和方法。

代码示例

您可以使用以下代码将原始数据直接发送到 Windows NT 或 Windows 95 中的打印机。

// RawDataToPrinter - sends binary data directly to a printer

// Params:

// szPrinterName - NULL terminated string specifying printer name

// lpData - Pointer to raw data bytes

// dwCount - Length of lpData in bytes

// Returns: TRUE for success, FALSE for failure.

BOOL RawDataToPrinter(LPSTR szPrinterName, LPBYTE lpData, DWORD dwCount)

{

HANDLE hPrinter;

DOC_INFO_1 DocInfo;

DWORD dwJob;

DWORD dwBytesWritten;

// Need a handle to the printer.

if(!OpenPrinter( szPrinterName, &hPrinter, NULL))

return FALSE;

// Fill in the structure with info about this "document."

DocInfo.pDocName = "My Document";

DocInfo.pOutputFile = NULL;

DocInfo.pDatatype = "RAW";

// Inform the spooler the document is beginning.

if((dwJob = StartDocPrinter(hPrinter, 1, (LPSTR)&DocInfo)) == 0)

{

ClosePrinter(hPrinter);

return FALSE;

}

// Start a page.

if(!StartPagePrinter(hPrinter))

{

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

return FALSE;

}

// Send the data to the printer.

if(!WritePrinter(hPrinter, lpData, dwCount, &dwBytesWritten))

{

EndPagePrinter(hPrinter);

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

return FALSE;

}

// End the page.

if(!EndPagePrinter(hPrinter))

{

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

return FALSE;

}

// Inform the spooler that the document is ending.

if(!EndDocPrinter(hPrinter))

{

ClosePrinter(hPrinter);

return FALSE;

}

// Tidy up the printer handle.

ClosePrinter(hPrinter);

// Check to see if correct number of bytes were written.

if(dwBytesWritten != dwCount)

return FALSE;

return TRUE;

}

以下文件可从 Microsoft 下载中心下载:

有关如何下载 Microsoft 支持文件的详细信息,请参阅如何从联机服务获取 Microsoft 支持文件。

Microsoft 已对此文件进行病毒扫描。 Microsoft 使用了最新的病毒检测软件,该软件在文件发布之日起可用。 文件存储在安全增强的服务器上,可帮助防止对文件进行任何未经授权的更改。

winaip文档服务器打印,使用 Win32 API 将原始数据发送到打印机相关推荐

  1. winaip文档服务器已停止工作,Win7系统中Office(2016或者2016)_Word已停止工作”的终极解决方案.doc...

    Win7系统中Office(2016或者2016)_Word已停止工作"的终极解决方案.doc Win7系统中Office(2010或者2003) Word已停止工作"的终极解决方 ...

  2. winaip文档服务器已停止工作,win7运行office?excel已停止工作,退出时崩溃

    关闭Excel时,出现错误提示,屏幕显示: office excel已停止工作 windows可以联机检查该问题的解决方案 进控制面板-->程序与功能,找到Office-->右击--> ...

  3. nx12文档服务器端口,NX12 OPEN API在VS2017中配置方法

    1. 安装NX12.注意端口号在安装完成后要改为27800,否则打开NX12时会报错(许可证错误). 2. 修改对应.vsz文件.修改NX12安装文件下的vs_file中的.vsz文件,Wizard= ...

  4. Golang 见证 godoc 的强大(生成API文档,打印文档)

    Golang 见证 godoc 的强大(生成API文档,打印文档) 文章目录 Golang 见证 godoc 的强大(生成API文档,打印文档) 一.godoc 介绍 二.godoc 安装 ① 系统环 ...

  5. wps文件一点打印就关闭打印机服务器,word打印闪退 word文档一打印就闪退

    是的打印机设置问题,可能是某个打印机服务没有打开当添加打印机或是使用打印机时,系统报错"打印后台程序服务没有运行",一般会发生在 Windows 2000.XP.2003 系统下, ...

  6. 文档服务器设置密码,文档服务器设置密码

    文档服务器设置密码 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 当云服务器密 ...

  7. java下载文件到服务器_java代码实现上传文件到文档服务器、下载文档服务器文件...

    需要完成下载->修改->上传这三个步骤 平台有提供对应的api吗? /** 首先我们来理解下关于文档的api 文档相关api都在这2个package下面 package :com.just ...

  8. java 上传文件服务_java代码实现上传文件到文档服务器、下载文档服务器文件

    需要完成下载->修改->上传这三个步骤 平台有提供对应的api吗? /** 首先我们来理解下关于文档的api 文档相关api都在这2个package下面 package :com.just ...

  9. uni-app uni-file-picker文件上传实现拍摄从相册选择获取图片上传文档服务器(H5上传-微信小程序上传)

    前言 最近在使用uni-app写H5移动端,有一个从手机拍摄从相册选择获取图片上传到文档服务器功能. 查阅uni-app发现关于上传图片,uni-file-picker文件上传,uni.chooseI ...

最新文章

  1. android gravity和layout_gravity区别
  2. python爬虫能扒什么_Python爬虫实例扒取2345天气预报
  3. 程序员圈的鄙视链 | 每日趣闻
  4. SpringBoot-服务端参数验证-JSR-303验证框架
  5. C语言socket connect()函数(初始化套接字上的连接)(未完)(如何测试socket是否已经断开,如何判断socket是否断开)
  6. 关于ax+by+cz的最大不可表数
  7. 用C# (.NET Core) 实现迭代器设计模式
  8. 技能高考本科计算机类,技能高考多少分上本科
  9. IDEA连接mysql出现时区错误_idea连接数据库时区错误
  10. TVM:使用 Auto-scheduling 来优化算子
  11. redission java_Java注解如何基于Redission实现分布式锁
  12. Nginx 过滤模块
  13. 西门子PLC与DCS通讯
  14. Java面试题及答案整理(2022最新版)
  15. C语言中断函数c_int00的作用,关于DSP程序中的_c_int00含义
  16. 监狱人员安全防范管理系统软件解决方案
  17. 机器视觉入门:决策树的剪枝理论
  18. RabbitMQ消息队列之RPC调用
  19. 打工人年终的自我犒赏,一人食火锅走起
  20. IE7访问HTTPS网站提示证书有安全问题的解决方案

热门文章

  1. 简约至上 交互设计四策略 读书心得
  2. go开篇——playground,一个沙箱编译器
  3. 加密货币技术架构(一)——BTC、ETH
  4. 有哪些令你印象深刻的魔改Transformer?
  5. sping cloud 搭建 微服务
  6. matlab对声场仿真,基于声线模型的水声传播MATLAB仿真.pdf
  7. php表单转json对象,将表单数据转化为json数据
  8. win7右键新建菜单删减与排序
  9. 计算机四级-网络工程师
  10. png批量转换为jpg,一键快速处理