我正在编写一个程序,它从文件读取并发送到打印机进行打印。无法从LPT1获取端口句柄
我将“HP Laser Jet 4”设置为默认打印机,并在“HP Laser Jet 4”的打印机属性中选中了“LPT1”。打印后台处理程序也在运行(Windows 7)。
问题是hPort始终返回INVALID_HANDLE_VALUE
。
我没有真正的打印机。这是个问题吗?
#include "stdafx.h"
#include <windows.h>
int main()
{
HANDLE hPort = CreateFile(_T("LPT1:"), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hPort != INVALID_HANDLE_VALUE) {
printf("success");
} else {
printf("%i", GetLastError());
}
return 0;
}
你的“filename.prn”文件的格式是什么?它只是ASCII字符串或任何特定的格式? – Felix 2014-09-13 11:22:08
@Fei此代码可用于向连接到任何端口类型(LPT,COM,USB,网络...)的打印机发送任何文件(文本,二进制文件)。如果需要使用某些格式打印页面(粗体..你需要提供命令PCL,ESC/P ...(换句话说,你必须执行打印机驱动程序的工作)。 – 2014-09-19 12:11:53