我必须使用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中的这个问题:
我应该使用哪个基于Java的PDF渲染库进行打印?
更新:上面的链接已断开,但除了谷歌搜索外,没有其他替代品。不幸的是,堆栈溢出所有者决定不欢迎与库建议相关的问题。
问题内容: 在我的应用程序中,我有一个包含数据的JTable,我需要添加一个打印按钮,该按钮添加了在打印机纸张上的表中打印数据的功能(发送打印机作业),使用该类怎么可能?我一直在寻找示例,但是找不到一个简单的示例,该示例从JComponent打印一些数据。 这是我发现的网站之一:http : //java.sun.com/products/java- media/2D/forDevelopers/
问题内容: 我有一个包含XML的Java字符串,没有换行或缩进。我想将其转换为格式正确的XML字符串。我该怎么做呢? 注意:我的输入是String。我的输出是String。 (基本)模拟结果: 问题答案: 注意:结果可能因Java版本而异。搜索特定于你的平台的解决方法。
我需要在cmd上打印这个字符。其UNICODE编码为U+26C0。我尝试了这个:system.out.print(“”);但在跑步中我得到了“?”角色谢谢。
我有一个flask应用程序,只有一条路线,没有复杂的事情发生,运行在docker容器中。我一辈子都不能让print语句出现在日志中(
问题内容: 我有一组打印机通过网络连接,并且为每台打印机分配了静态IP。 现在,我在Linux服务器上运行了一个PHP Web应用程序,该服务器需要通过网络将打印作业发送到这些打印机。 使用lpr或杯子可以吗,我该怎么办。 问题答案: 您可以从此处使用LPR打印机类: http://www.phpclasses.org/package/2540-PHP-Abstraction-for-printi
在我的项目中,客户需要使用POS打印机打印收据,这可以使用JAVA POS来完成。我在网上搜索没有任何有用的材料,但发现 1.javapos 2.jpos 可以有人请指导我应该进行JAVA POS或JPOS。 该应用程序基于Java Swing desktop而不是基于web。 真的坚持这一点,任何帮助都是非常有用的