0

我的适用于 Windows 的 Java 应用程序通过假脱机程序在热敏打印机上打印,而无需与打印对话框进行任何交互(使用下面的代码片段)。

我不知道为什么,但它忽略了打印机属性对话框中的设备配置设置(在 Windows 7 上,右键单击打印机和设备中的打印机)。在文档末尾发出蜂鸣声或切纸的设置将被忽略。

有专有的 ESC/POS 代码可用于实现相同的效果,但其中一些仅适用于“直接协议”打印。我试图不使用它们并改为配置打印机属性,以简化打印问题的故障排除(尽管在这种情况下我会采用直接协议作为最后的手段)。

如何使打印作业接受打印机属性配置设置?或者如果需要如何使用直接协议?

File file = File.createTempFile("order", "tmp");
try (PrintWriter printWriter = new PrintWriter(file)) {
    printWriter.print(textToPrint);
}
DocPrintJob dpj = printService.createPrintJob();
InputStream stream = new ByteArrayInputStream(textToPrint.getBytes(StandardCharsets.UTF_8));
HashDocAttributeSet attributes = new HashDocAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(stream, flavor, attributes);
dpj.print(doc, new HashPrintRequestAttributeSet(new JobName("The Application", null)));
file.delete();
4

0 回答 0