Pergunta

Estou tentando imprimir arquivos PDF silenciosos de um aplicativo Java (mais especificamente um J2EE WebApp).

Dentro deste aplicativo, estou criando arquivos PDF com o ITEXT. Os arquivos criados são letras do formulário, cada uma consistindo exatamente em uma página.

Para renderizar e imprimir esses arquivos PDF, tentei usar a Biblioteca de Renderizador PDF. (Veja aqui: https://pdf-renderer.dev.java.net/ )

Eu encontrei algum código de exemplo útil em http://juixe.com/techknow/index.php/2008/01/17/print-a-pdf-document-in-java/ E, de fato, não demorou muito para que eu pudesse imprimir o primeiro documento da minha máquina de trabalho.

Mas agora vem a parte engraçada:

Depois de imprimir cada um dos arquivos PDF, de alguma forma foi estragado. Ainda era legível e tudo mais, mas toda a formatação ficou um pouco louca. Linera -se onde não deveriam estar, os artefatos de erro na imagem contidos, a iluminação do texto é subitamente mais longa ou mais curta como suposta ...

Além disso, o que foi impresso também foi essa versão 'hackeada' ... então acho que o erro deve estar em algum lugar no processo de renderização.

Este é o código -fonte responsável por todo o processo de renderização e impressão:

File f = this.file; //This accesses the created PDF file

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); // Create PDF Print Page

PDFPrintPage pages = new PDFPrintPage(pdfFile);



// Create Print Job

PageFormat pf = PrinterJob.getPrinterJob().defaultPage();

pjob.setJobName(f.getName());

Book book = new Book();

book.append(pages, pf, pdfFile.getNumPages());

pjob.setPageable(book);

Outro fato divertido: o estrago dos PDFs ocorre apenas nos documentos criados em PDF ITEXT. Se eu tentar imprimir algum outro pdf aleatório, ele não será mutilado.

Alguma idéia sobre qual poderia ser o problema? E como a renderização pode afetar meus PDFs? Pelo que entendi esse código de limpeza, o modo read_only deve evitar exatamente isso ...

EDIT: Acabei de ver que a impressão de um PDF criada no ITEXT também remove as fontes incorporadas. Novamente, antes de renderizar/imprimir via renderizador de PDF, isso funcionou perfeitamente bem. (As fontes também apareceram nas propriedades do PDF, etc. ...)

Foi útil?

Solução

Talvez o ITEXT esteja criando arquivos PDF que não são compatíveis com seu renderizador? Você verificou qual versão em PDF ele cria? Talvez seja possível especificar uma versão mais antiga?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top