我有一台古老的 POS 打印机 Axhiohm A470 LINK。Windows 7 64bit 未检测到此打印机并且驱动程序不存在。唯一的打印方式(仅限文本模式)是将打印作业直接发送到 LPT。经过一番挖掘,我发现这很容易。您唯一需要做的就是正确创建文件 LPT1 并写入它。
#include <iostream>
#include <conio.h>
#include <windows.h>
int main(int argc, char* argv[])
{
HANDLE hComm = CreateFileA("LPT1", GENERIC_READ | GENERIC_WRITE,
0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hComm == INVALID_HANDLE_VALUE)
return 1;
char str[] = { " Hello from your printer\n" };
DWORD bytesWritten;
unsigned char data;
BOOL nError = WriteFile(hComm, str, sizeof(str), &bytesWritten, NULL);
if (nError)
std::cout << "Data sent" << std::endl;
else
std::cout << "Failed to write data " << GetLastError() << std::endl;
_getch();
}
现在我想更进一步,将打印作业发送到第二个进纸器。第一个是打印机内的纸卷(打印收据)。这个由上面的代码打印。第二个是用于放入另一张收据的狭缝。我不知道如何在那里发送打印作业。