winaip文档服务器打印,使用 Win32 API 将原始数据发送到打印机
使用 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 将原始数据发送到打印机相关推荐
- winaip文档服务器已停止工作,Win7系统中Office(2016或者2016)_Word已停止工作”的终极解决方案.doc...
Win7系统中Office(2016或者2016)_Word已停止工作"的终极解决方案.doc Win7系统中Office(2010或者2003) Word已停止工作"的终极解决方 ...
- winaip文档服务器已停止工作,win7运行office?excel已停止工作,退出时崩溃
关闭Excel时,出现错误提示,屏幕显示: office excel已停止工作 windows可以联机检查该问题的解决方案 进控制面板-->程序与功能,找到Office-->右击--> ...
- nx12文档服务器端口,NX12 OPEN API在VS2017中配置方法
1. 安装NX12.注意端口号在安装完成后要改为27800,否则打开NX12时会报错(许可证错误). 2. 修改对应.vsz文件.修改NX12安装文件下的vs_file中的.vsz文件,Wizard= ...
- Golang 见证 godoc 的强大(生成API文档,打印文档)
Golang 见证 godoc 的强大(生成API文档,打印文档) 文章目录 Golang 见证 godoc 的强大(生成API文档,打印文档) 一.godoc 介绍 二.godoc 安装 ① 系统环 ...
- wps文件一点打印就关闭打印机服务器,word打印闪退 word文档一打印就闪退
是的打印机设置问题,可能是某个打印机服务没有打开当添加打印机或是使用打印机时,系统报错"打印后台程序服务没有运行",一般会发生在 Windows 2000.XP.2003 系统下, ...
- 文档服务器设置密码,文档服务器设置密码
文档服务器设置密码 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 当云服务器密 ...
- java下载文件到服务器_java代码实现上传文件到文档服务器、下载文档服务器文件...
需要完成下载->修改->上传这三个步骤 平台有提供对应的api吗? /** 首先我们来理解下关于文档的api 文档相关api都在这2个package下面 package :com.just ...
- java 上传文件服务_java代码实现上传文件到文档服务器、下载文档服务器文件
需要完成下载->修改->上传这三个步骤 平台有提供对应的api吗? /** 首先我们来理解下关于文档的api 文档相关api都在这2个package下面 package :com.just ...
- uni-app uni-file-picker文件上传实现拍摄从相册选择获取图片上传文档服务器(H5上传-微信小程序上传)
前言 最近在使用uni-app写H5移动端,有一个从手机拍摄从相册选择获取图片上传到文档服务器功能. 查阅uni-app发现关于上传图片,uni-file-picker文件上传,uni.chooseI ...
最新文章
- android gravity和layout_gravity区别
- python爬虫能扒什么_Python爬虫实例扒取2345天气预报
- 程序员圈的鄙视链 | 每日趣闻
- SpringBoot-服务端参数验证-JSR-303验证框架
- C语言socket connect()函数(初始化套接字上的连接)(未完)(如何测试socket是否已经断开,如何判断socket是否断开)
- 关于ax+by+cz的最大不可表数
- 用C# (.NET Core) 实现迭代器设计模式
- 技能高考本科计算机类,技能高考多少分上本科
- IDEA连接mysql出现时区错误_idea连接数据库时区错误
- TVM:使用 Auto-scheduling 来优化算子
- redission java_Java注解如何基于Redission实现分布式锁
- Nginx 过滤模块
- 西门子PLC与DCS通讯
- Java面试题及答案整理(2022最新版)
- C语言中断函数c_int00的作用,关于DSP程序中的_c_int00含义
- 监狱人员安全防范管理系统软件解决方案
- 机器视觉入门:决策树的剪枝理论
- RabbitMQ消息队列之RPC调用
- 打工人年终的自我犒赏,一人食火锅走起
- IE7访问HTTPS网站提示证书有安全问题的解决方案