gpt4 book ai didi

java - 如何从 Java 应用程序打印 PDF

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

我必须使用 java 应用程序打印 PDF 文件。我试过这样的方法:

FileInputStream psStream = new FileInputStream("<path to file>");
PrintService service = getPrinterByName("some printer name");
if (service != null) {
DocPrintJob printJob = service.createPrintJob();
Doc document = new SimpleDoc(psStream, DocFlavor.INPUT_STREAM.AUTOSENSE, null);
try {
printJob.print(document, null);
} catch (PrintException e) {
e.printStackTrace();
}
}

private PrintService[] getPrintersList() {
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor, null);

return services;
}

private PrintService getPrinterByName(String name) {
PrintService[] list = getPrintersList();
if (list.length > 0) {
for (PrintService service : list) {
if (service.getName().contains(name)) {
return service;
}
}
}
return null;
}

当我在假打印机上测试时(我使用 PDFCreator 作为打印机)一切正常,但是当我尝试在物理打印机上打印时,没有任何反应。

然后我用了PDFBox .文档已打印,但在不应该出现的地方,单词之间有奇怪的点。

那么,也许有人有从 java 应用程序打印 PDF 的经验并可以分享此信息?

最佳答案

将 PDF 文件直接发送到打印机只适用于本身支持 PDF 格式的打印机。这将被任何虚拟 PDF 打印机支持,但大多数硬件打印机都不支持。如果您想可靠地打印 PDF 文件,您需要使用库将其内容呈现到打印机中。

然后看看 SO 中的这个问题:
Which Java based PDF rendering library should I use for printing?

更新:上面的链接已损坏,但除了进行谷歌搜索外没有其他替代品。不幸的是,stack-overflow 所有者决定不欢迎与图书馆推荐相关的问题。

关于java - 如何从 Java 应用程序打印 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12371211/

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