[RESOLVIDO] Pdf imprime mas saem folhas em branco

0 respostas
A

Blz ?

Galera eu tenho este método para impressão (usando PDFRenderer):
public static void printByName(InputStream inputStream, String printerName, String jobName) throws Exception{
            byte[] pdfContent = Util.getBytesFromInputStream(inputStream);
            ByteBuffer buffer = ByteBuffer.wrap(pdfContent);
            final PDFFile pdfFile = new PDFFile(buffer);
            
           
            Printable printable = new Printable() {

                @Override
                public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
                    if (pageIndex >= pdfFile.getNumPages()) {
                        return NO_SUCH_PAGE;
                    }
                    Graphics2D graphics2D = (Graphics2D) graphics;
                    PDFPage page = pdfFile.getPage(pageIndex + 1);
                    
                    
//                    log("pageFormat.getImageableX(): " + pageFormat.getImageableX());
//                    log("pageFormat.getImageableY(): " + pageFormat.getImageableY());
//                    log("pageFormat.getImageableWidth(): " + pageFormat.getImageableWidth());
//                    log("pageFormat.getImageableHeight(): " + pageFormat.getImageableHeight());
                    
                    Rectangle imageArea = new Rectangle(
                                                    (int) pageFormat.getImageableX(), 
                                                    (int) pageFormat.getImageableY(),
                                                    (int) pageFormat.getImageableWidth(),
                                                    (int) pageFormat.getImageableHeight());
                    graphics2D.translate(0, 0);
                    PDFRenderer pdfRenderer = new PDFRenderer(page, graphics2D, imageArea, null, null);
                    try {
                        page.waitForFinish();
                        pdfRenderer.run();
                    } catch (InterruptedException e) {
                        throw new PrintException("Problemas na tentativa de imprimir o pdf.", e);
                    }
                    log("pagina existe");
                    return PAGE_EXISTS;
                     
                }
            };
            
            PrinterJob printJob = PrinterJob.getPrinterJob();            
            
            PageFormat pageFormat = printJob.defaultPage();
            printJob.setJobName(jobName);
            Book book = new Book();
            book.append(printable, pageFormat, pdfFile.getNumPages());
            printJob.setPageable(book);
            Paper paper = new Paper();
            paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight());
            pageFormat.setPaper(paper);
            
            
            PrintService printService = createPrintService(printerName);
            printJob.setPrintService(printService);
            printJob.print();
        }
Ele imprime como eu quero, mas tbm saem folhas em branco. Uma coisa que reparei é que o metodo print esta sendo chamado 4 vezes para um pdf de uma página. E o parametro pageIndex sempre igual a zero.

Obrigado!

-------------------

Deu certo! O código esta em anexo.

Criado 11 de novembro de 2011
Respostas 0
Participantes 1