目前我在使用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选项为described here pretty well:
-o raw选项允许您直接将文件发送到打印机而无需过滤。从为您的打印机提供自己的“打印机驱动程序”的应用程序打印时,有时需要这样做:
就像我说的那样,打印本身就像一个魅力,但我不知道如何添加这个特定的标志。也许有人可以形容我怎么做。
答案 0 :(得分: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);