gpt4 book ai didi

java - java.awt.print.PrinterJob 的监听器

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:55 26 4
gpt4 key购买 nike

监听器是否可用于 java.awt.print.PrinterJob ?我只能找到 PrintJobListenerjavax.print.DocPrintJob .我正在 java.awt.print.PrinterJob 中寻找它的等效项,以便我可以跟踪打印是否存在问题。

最佳答案

这就像解决一个老问题,但对于像我这样正在寻找答案的人,我希望它能有所帮助。

只有将您的可打印文件转换为 javax.print 才能使用 java.awt 内容的事件。以下是如何在不破坏 pageFormat 的情况下正确执行此操作。

    // get default service
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
// this is your old awt job, which you can use to get default pageFormat
PrinterJob job = PrinterJob.getPrinterJob();
// set your printer service to old awt so that you can get the default paper
job.setPrintService(service);
// get the default page format from the printer you selected
PageFormat pageFormat = job.getPageFormat(null);
// do some paper stuff etc. here
// get your doc
DocPrintJob printJob = service.createPrintJob();
Book book = new Book();
// Print interface implements printable
book.append(new PrintInterface(), pageFormat);
// make your attr here
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(PrintQuality.HIGH);
// Create your doc for pageable
SimpleDoc doc = new SimpleDoc(book, DocFlavor.SERVICE_FORMATTED.PAGEABLE, null);
/// and voila, print it
printJob.print(doc, aset);

对于单个可打印文件也可以这样做,但目前我找不到为此更改 PageFormat 的方法,所以我只是跳过了它。这样您就可以使用 Pageable 或 Printable 并且您仍然可以通过简单地使用 printJob.addPrintJobListener() 添加它们来使用这些事件

这无论如何都不是完整的代码,但如果您愿意的话,它可以让您了解。

关于java - java.awt.print.PrinterJob 的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070309/

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