Pessoal, o meu projeto( JAVAxCOBOL) possui uma funcionalidade onde o COBOL gera um arquivo texto e eu preciso pegar esse arquivo txt e transformá-lo em pdf, gostaria de saber se isso é possível e como é feito. O meu sistema hoje trabalha com relatórios gerando diretamente o pdf dessa maneira:
Leia o conteudo do txt e passe como parametro para o jasperreports.
_
_fs
Se a coisa é bem simples, pode PDFBox para criar um PDF ou Jakarta POI para criar um DOC.
F
fournier
Aleck
Eu gostaria de uma implementação mais drag and drop, sem me preocupar com o formato que o arquivo texto terá, porque eu somente pegaria o arquivo texto e jogaria em pdf da maneira como ele foi criado pelo COBOL, sem me preocupar com formatações ou campos do arquivo.
Filipe Sabella
Não entendi o PDFBox, poderia me explicar melhor essa parte por favor.
Obrigado a todos.
T
Tecnoage
implementação mais drag n’ drop é complicado heim?
D
douggs
axo que isso pode resolver…
importjava.awt.Component;importjava.awt.Font;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjavax.swing.JButton;importjavax.swing.JOptionPane;importjavax.swing.JProgressBar;publicclassGeraArquivo{publicstaticvoidgerar(Stringtexto,Stringnfile){java.io.FileOutputStreamfos;JOptionPanealert;Filefile;try{file=newFile("C:\\"+nfile);if(file.exists()){/**se o arquivo a ser gerado existe*/file.delete();/**arquivo sera apagado */fos=newjava.io.FileOutputStream(file);/**e sera gerado novo arquivo */fos.write(texto.getBytes());/**passando o texto(valor) qualquer*/fos.flush();/**finaliza o arquivo */fos.close();/**fecha o arquivo */JOptionPane.showMessageDialog(null,"Arquivo "+nfile.toString()+" criado com sucesso!");}else{fos=newjava.io.FileOutputStream(file);fos.write(texto.getBytes());fos.flush();fos.close();JOptionPane.showMessageDialog(null,"Arquivo "+nfile.toString()+" criado com sucesso!");}}catch(Exceptione){JOptionPane.showMessageDialog(null,"Ocorreu um Erro ao Gerar o arquivo.");}}publicstaticvoidmain(Stringargs[]){newGeraArquivo().gerar("Teste","arquivo.txt");}}
pode ser que isso funcione…
qq duvida me avise q eu t ajudo…
F
fournier
douggs, me tire uma dúvida por favor.
O arquivo .txt já existe fisicamente e já está com as informações geradas pelo COBOL.
Eu não entendi o seguinte:
Se o arquivo existir, você executa o código fos.write(texto.getBytes()); para que se o arquivo já está ok ??
No meu caso isso não será necessário, mas como eu pegarei o objeto FileOutputStream e passarei para PDF ??
Obrigado.
D
douggs
axo que vc compreendeu errado este programa…
assim:
quando vc inseri os dados manualmente e manda ele gerar nomedoarquivo.pdf
ele ira gerar o arquivo pdf…no caso vc esta carregando o arquivo gerado com as inf. do cobol…
nesse prog…ele não sabe ler o conteúdo do arquivo…ele só verifica se o arquivo existir ele exclui o antigo…
vc determina a extenção que o arquivo vai ter…
ok?
F
fournier
douggs, mas o problema é justamente esse, como abrir o arquivo no browse com PDF ou TXT.
Estou tentando utilizar o código abaixo, porém ele não está abrindo com a cara de ADOBE, o browse joga o arquivo texto sem nenhum scroll.
Alguém sabe me informar o que está errado ??
Eu já tentei também abrir como txt alterando de "application/pdf" para "application/txt", mas ao invés de explodir o arquivo dentro da servlet está abrindo uma nova janela.
Valeu.
F
fournier
Alguém poderia me dar um help ??
Obrigado.
F
fournier
Pessoal, encontrei uma solução, tive que abrir o arquivo mas pelo menos está fazendo o que era necessário.
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ServletOutputStreamsos=response.getOutputStream();try{ByteArrayOutputStreambaos=newByteArrayOutputStream();Documentdocument=newDocument();PdfWriter.getInstance(document,baos);document.open();BufferedReaderbr=newBufferedReader(newFileReader((String)request.getSession().getAttribute("fakefile")));request.getSession().removeAttribute("fakefile");StringstrLinha=null;booleanbVazio=false;while((strLinha=br.readLine())!=null){document.add(newParagraph(strLinha));bVazio=true;}if(!bVazio){document.add(newParagraph(" "));}document.close();br.close();response.setContentType("application/pdf");response.setHeader("Expires","0");response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");response.setHeader("Pragma","no-cache");//HTTP 1.0response.setDateHeader("Expires",0);//prevents caching at the proxy serverresponse.setHeader("Cache-Control","no-cache");//HTTP 1.1response.setHeader("Cache-Control","max-age=0");response.setContentLength(baos.toByteArray().length);baos.writeTo(sos);baos.close();sos.flush();sos.close();}catch(IOExceptione){sos.flush();sos.close();}catch(Exceptione){sos.flush();sos.close();}finally{sos.flush();sos.close();}}
publicvoidgeraPDF(){try{FileInputStreamfstream=newFileInputStream(“C:\TextName.txt”);DataInputStreamin=newDataInputStream(fstream);BufferedReaderbr=newBufferedReader(newInputStreamReader(in));StringstrLine;//criação do pdfDocumentdocument=newDocument(PageSize.A4,36,72,108,180);PdfWriter.getInstance(document,newFileOutputStream(“C:\PDFName.pdf”));document.open();
//Ler txt linha a linhawhile((strLine=br.readLine())!=null){Stringtext=strLine;document.add(newParagraph(text));}document.close();}catch(Exceptione){}