Java kullanarak bir PDF yazdırmak için bir sorunum var. Java'nın baskı PDF'yi desteklemediğini biliyorum çünkü java'nın bir PDF oluşturucuya sahip olmaması neden oluyor. Bu yüzden onunla baskı için bir örnek bir PDFRenderer kitaplığı kullanarak ve burada yaşıyorum bu sorunu çözmek için:PDF YazıcıJob iş durumu
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();
Düzgün çalışır, ama benim yazıcı işin durumunu almak için bir yol gerekir. Yazıcımın ne zaman bitirileceğini bilip bilmem gerek. Java API, DocPrintJob ve PrintJobListener ile iyi bir çözüme sahiptir, ancak PDF yazdırma için PrinterJob kullanmam gerekiyor. Öyleyse, PrinterHob'daki iş durumunu DocPrintJob'da nasıl dinleyebilirim?
PrintServic.addPrintServiceAttributeListener'ı kullanabilirsiniz. PrintJobListener kadar yararlı değil ama sanırım sorununuzu çözebilirsiniz. – Jayan
@Jayan Sorun bir PrintService.addPrintServiceAttributeListener kullanıyorum. Bazı nedenlerden dolayı bir PrinterState alamıyorum, IT ALWAYS IS sıfır (myPrintService.getAttribute (PrinterState.class)) – whizzzkey