gpt4 book ai didi

java - 文件尚未通过java中的打印机设备打印

转载 作者:行者123 更新时间:2023-12-01 09:54:37 25 4
gpt4 key购买 nike

我想打印一个文件。我为此编写了这段代码。但它不打印我的文件。选择服务:

      String printerName = "Canon MF4320-4350".toLowerCase();
PrintService service = null;

PrintService[] services = PrinterJob.lookupPrintServices();

// Retrieve a print service from the array
for (int index = 0; service == null && index < services.length; index++) {

if (services[index].getName().toLowerCase().indexOf(printerName) >= 0) {
service = services[index];
}
}

用于打印:

    byte[] bytes = null;
Path path = FileSystems.getDefault().getPath("D:\\Test.docx");
bytes = Files.readAllBytes(path);
DocFlavor docFlavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
PrintRequestAttributeSet faset = new HashPrintRequestAttributeSet();
faset.add(new Copies(5));
faset.add(Sides.ONE_SIDED);
DocAttributeSet daset = new HashDocAttributeSet();
daset.add(OrientationRequested.LANDSCAPE);
daset.add(Sides.ONE_SIDED);
Doc myDoc = new SimpleDoc(bytes, docFlavor, daset);
//create the DocPrintJob
DocPrintJob job = service.createPrintJob();
job.print(myDoc, faset);

最佳答案

这不是打印的工作方式 - 当 Word 打印 docx 文件时,它不会将文件的原始字节发送到打印机。相反,它将文件转换为低级打印命令,并将其发送到打印驱动程序。

Java 打印 API 可以处理 2d rendering via drawing commands ,或者它允许您将原始字节流发送到打印机,但您有责任使打印机能够理解字节。

另请参阅this question ,然后查看 docx4j .

关于java - 文件尚未通过java中的打印机设备打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342307/

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