estou procurando na net… mas não encontro nada sobre tal assunto…
eh o seguinte… um exemplo… tenho esse pedaço de codigo
Documentdocument=newDocument();try{PdfWriter.getInstance(document,newFileOutputStream("C://PDF_LinhaCodigo.pdf"));document.open();// adicionando um parágrafo ao documentodocument.add(newParagraph("Exemplo Geração de Arquivo PDF via iText - Java"));}catch(DocumentExceptionde){System.err.println(de.getMessage());}catch(IOExceptionioe){System.err.println(ioe.getMessage());}document.close();
se eu quizer mandar imprimir direto esse aquivo PDF… como q eu faço para imprimi-lo…???
porem nesse metodo seta para impressão um InputStream, porem não encontrei nenhum metodo de objetos relacionados ao pdf q me devolva um InputStream ou coisa do tipo… : /
Ao invés de passar um FileOutputStream para PdfWriter.getInstance, passe um ByteArrayOutputstream, e pegue posteriormente o conteúdo em bytes.
Veja se funciona e posta aí pra galera.
Abraço,
Armando
K
kpbds_pb
não funciona… não eh aceito esse tipo de parametro no getInstance…
[]'s… estou quase resolvendo creio eu ! hehehehe…
K
kpbds_pb
mudei um poko o metodo de impressão… agora eu passo o caminho do arquivo pdf… e falo q o arquivo q será impresso… EH um pdf…
veja o codigo…
publicsynchronizedbooleanimprime(Stringcaminho)throwsPrintException{// se nao existir impressora, entao avisa usuario// senao imprime textoif(impressora==null){Stringmsg="Nennhuma impressora foi encontrada. Instale uma impressora padrão \r\n(Generic Text Only) e reinicie o programa.";System.out.println(msg);}else{try{DocPrintJobdpj=impressora.createPrintJob();DocFlavorflavor=DocFlavor.INPUT_STREAM.PDF;FileInputStreamfile;file=newFileInputStream("C://Comprovante_20061221.pdf");DocAttributeSetdas=newHashDocAttributeSet();Docdoc=newSimpleDoc(file,flavor,das);dpj.print(doc,null);returntrue;}catch(FileNotFoundExceptionex){ex.printStackTrace();}}returnfalse;}
Vê aí que bicho dá… é melhor do que gravar um arquivo inútil, que você vai ter que ficar controlando…
Abraço,
Armando
K
kpbds_pb
Olá… Bom di a todos…
mesmo eu fazendo isso como foi sugerido pelo Armando… o metodo ficaria assim…
publicsynchronizedbooleanimprime(ByteArrayOutputStreamoutput)throwsPrintException{// se nao existir impressora, entao avisa usuario// senao imprime textoif(impressora==null){Stringmsg="Nennhuma impressora foi encontrada. Instale uma impressora padrão \r\n(Generic Text Only) e reinicie o programa.";System.out.println(msg);}else{DocPrintJobdpj=impressora.createPrintJob();DocFlavorflavor=DocFlavor.INPUT_STREAM.AUTOSENSE;FileInputStreamfile;InputStreamstream=newByteArrayInputStream(output.toByteArray());DocAttributeSetdas=newHashDocAttributeSet();Docdoc=newSimpleDoc(stream,flavor,das);dpj.print(doc,null);returntrue;}returnfalse;}
e a chamada desse metódo ficaria assim:
Documentdocument=newDocument();ByteArrayOutputStreamoutput=newByteArrayOutputStream();try{Stringarquivo="arquivo.pdf";PdfWriter.getInstance(document,output);document.open();// adicionando um parágrafo ao documentodocument.add(newParagraph("Exemplo Geração de Arquivo PDF via iText - Java"));}catch(DocumentExceptionde){System.err.println(de.getMessage());}document.close();try{impressao.imprime(output);}catch(PrintExceptionex){ex.printStackTrace();}
ele imprime… mas não imprime absolutamente nada do q tem ser impresso… imprime um monte de código… como se fosse erro da impressora…
se eu encontrar a solução estarei avisando… e fico aguardando sugestões…
K
kpbds_pb
Olá…
podem me ajudar como converto um arquivo pdf para um arquivo postScript em Java??? pois na internet achei q esse eh o unico meio de fazer a impressão