gpt4 book ai didi

C++ Linux : OpenPrinter equivalent

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:08 27 4
gpt4 key购买 nike

我正在使用 Qt。我需要直接向我的打印机写入一些文本。在 Windows 上,我可以使用 winapi OpenPrinter 和 WritePrinter 执行此操作,但我需要此代码才能在 linux 上运行,但我无法在 linux 上找到此函数 OpenPrinter。我知道我可以像这样直接写入 linux/dev/usb/lpX 文件:

char *dev = "/dev/usb/lp0";
int printerfile = open(dev, O_RDWR | O_NOCTTY | O_NDELAY) ;
if (printerfile < 0)
{
cout << "Failed to open "<<dev;
exit(-1);
}
string str = "test 12345";
write(printerfile,str.c_str(),str.length());

但这需要像/dev/usb/lp0 这样的设备路径,而且我只能从像 EPSON LX-300+ 这样的 Qt 获取打印机名称。

最佳答案

您可以尝试通过命令了解更多关于您的 Linux 操作系统连接打印机的信息:

[udevadm info -q all -n /dev/usb/lp0]

输出如下:

-------------
P: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-
1.2:1.0/usbmisc/lp0
N: usb/lp0
E: DEVNAME=/dev/usb/lp0
E: DEVPATH=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-
1.2:1.0/usbmisc/lp0
E: MAJOR=180
E: MINOR=0
E: SUBSYSTEM=usbmisc
E: UDEV_LOG=3
-------------

关于C++ Linux : OpenPrinter equivalent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32518768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com