1

目前我在使用cups4j 时遇到了一些问题。例如,在 linux 下,您可以像这样在杯子打印机上打印:

echo -e "test Text\\r" | lp -o raw -h <IP-ADRESS> -d <PRINTER-NAME>

对我来说重要的是“-o raw”标志。

我的问题是在使用 cups4j 打印时,我不知道如何设置此标志。下一个正确的工作代码剪辑显示了我在 CupsPrinter 上打印 cups4j PrintJob 的方法。

private PrintRequestResult print(CupsPrinter printer, PrintJob job) throws Exception {
    return printer.print(job);
}

-o raw 选项在这里描述得很好

-o raw 选项允许您将文件直接发送到打印机而不进行过滤。从为您的打印机提供自己的“打印机驱动程序”的应用程序进行打印时,有时需要这样做:

就像我说的,打印本身就像一个魅力,但我不知道如何添加这个特定的标志。也许有人可以描述我如何做到这一点。

4

1 回答 1

4

在分析了终端和java程序通过wireshark(我很喜欢它)发送到CUPS的包后,我发现以下内容对我有用:

CupsClient cupsClient = new CupsClient(IP, port);
URL url = new URL(printerName);
CupsPrinter cupsPrinter = cupsClient.getPrinter(url);
HashMap<String, String> map = new HashMap<>();
map.put("document-format", "application/vnd.cups-raw");
PrintJob printJob = new PrintJob.Builder(bytes).attributes(map).build();
PrintRequestResult printRequestResult = cupsPrinter.print(printJob);
于 2016-08-01T20:51:17.373 回答