gpt4 book ai didi

java - 如何使用 Java 打印对话框打印 PDF 文件

转载 作者:行者123 更新时间:2023-12-01 09:03:53 26 4
gpt4 key购买 nike

我找到了一个Java打印示例here .

不幸的是,尝试执行时出现异常

Exception in thread "main" sun.print.PrintJobFlavorException: invalid flavor
at sun.print.Win32PrintJob.print(Unknown Source)
at application.UsePrintingServiceInJava.main(UsePrintingServiceInJava.java:55)

我还尝试使用 DocFlavor.INPUT_STREAM.PNG 风格而不是 pdf 来打印 png,效果很好。打印机本身可能有问题还是我必须更改代码?

此外,如果您有更好的 Java 打印 PDF 文件的解决方案,请告诉我。

最佳答案

最后,Apache PDFBox解决了我的问题。我下载了pdfbox-app-2.0.4.jar并将其添加到构建路径中。现在执行以下代码将打印所需的 .pdf 文件:

public class Main {

public static void main(String[] args) throws Exception {

String filename = "C:/Users/Prodoxon/Documents/test.pdf";
PDDocument document = PDDocument.load(new File (filename));

//takes standard printer defined by OS
PrintService myPrintService = PrintServiceLookup.lookupDefaultPrintService();

PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(document));
job.setPrintService(myPrintService);
job.print();

}

private static PrintService findPrintService(String printerName) {
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null);
for (PrintService printService : printServices) {
if (printService.getName().trim().equals(printerName)) {
return printService;
}
}
return null;
}

}

即使它没有显示打印对话框,如果您只想打印文件,我认为这是一个很好的解决方案。

关于java - 如何使用 Java 打印对话框打印 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41443875/

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