gpt4 book ai didi

java - PDF PrinterJob 获取作业状态

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:28:58 35 4
gpt4 key购买 nike

我在使用 java 打印 PDF 时遇到问题。我知道 Java 本身不支持打印 PDF,因为 java 没有 PDF 渲染器。因此,为了解决这个问题,我使用了 PDFRenderer 库,下面是一个使用它进行打印的示例:

 File f = new File("myfile.pdf");
FileInputStream fis = new FileInputStream(f);
FileChannel fc = fis.getChannel();
ByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0,
fc.size());
PDFFile pdfFile = new PDFFile(bb);
PDFPrintPage pages = new PDFPrintPage(pdfFile);
PrinterJob pjob = PrinterJob.getPrinterJob();
PageFormat pf = PrinterJob.getPrinterJob().defaultPage();
pjob.setJobName(f.getName());
pjob.setPrintService(mPrintService);
Book book = new Book();
book.append(pages, pf, pdfFile.getNumPages());
pjob.setPageable(book);
pjob.print();

它工作正常,但我需要一些方法来获取我的打印机作业的状态。我需要知道我的打印机作业何时完成才能开始另一个作业。 Java API 对 DocPrintJob 和 PrintJobListener 有很好的解决方案,但我需要使用 PrinterJob 进行 PDF 打印。那么我如何才能像在 DocPrintJob 中一样从我的 PrinterJob 中收听作业状态?

最佳答案

javafx.print
Enum PrinterJob.JobStatus

java.lang.Object
java.lang.Enum<PrinterJob.JobStatus>
javafx.print.PrinterJob.JobStatus


public static PrinterJob.JobStatus[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (PrinterJob.JobStatus c : PrinterJob.JobStatus.values())
System.out.println(c);

关于java - PDF PrinterJob 获取作业状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26923326/

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