gpt4 book ai didi

java - 在 Java 中使用 PrinterJob 打印 PDF 文件

转载 作者:太空狗 更新时间:2023-10-29 22:49:01 28 4
gpt4 key购买 nike

尝试使用 Java 打印 PDF 文件时遇到问题。这是我的代码:

PdfReader readFtp = new PdfReader();    // This class is used for reading a PDF file
PDDocument document = readFtp.readFTPFile(documentID);

printRequestAttributeSet.add(new PageRanges(1, 10));

job.setPageable(document);
job.print(printRequestAttributeSet); // calling for print

document.close()


我使用 document.silentPrint(job);job.print(printRequestAttributeSet); - 它工作正常。如果我使用 document.silentPrint(job); - 我无法设置 PrintRequestAttributeSet

谁能告诉我如何设置PrintRequestAttributeSet

最佳答案

我的打印机不支持原生 PDF 打印。

我使用了开源库 Apache PDFBox https://pdfbox.apache.org打印 PDF。打印本身仍然由 Java 的 PrinterJob 处理。

import java.awt.print.PrinterJob;
import java.io.File;

import javax.print.PrintService;
import javax.print.PrintServiceLookup;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.printing.PDFPageable;

public class PrintingExample {

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

PDDocument document = PDDocument.load(new File("C:/temp/example.pdf"));

PrintService myPrintService = findPrintService("My Windows printer Name");

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 中使用 PrinterJob 打印 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16293859/

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