Problema no código para converter para PDF

1 resposta
T

Prezados Senhores,

O código abiaxo é está sendo, por enquanto, uma tentativa frustrado de criar uma aplicação capaz de converter arquivos, por exemplo .doc, em PDF. O código é esse:
package bernardes;

import java.io.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;

public class ConvertPDF {

    public ConvertPDF(){}
	
    public void ConvertToPDF(String inputFile, String outputFile){
    	PdfWriter writer = null;
	InputStream infile = null;
		    	
    	//Criar o documento
    	Document documento = new Document();
    	
    	//Direciona os dados de documento a um arquivo de saída
    	try{
    		infile = new FileInputStream(new File(inputFile));
    		writer = PdfWriter.getInstance(documento,new FileOutputStream(outputFile));
    		
    	}catch(DocumentException e){
    	}catch(FileNotFoundException e){}
    	
    	//Abre o documento
    	documento.open();
    	
    	if ((infile != null) && (writer != null)){
    		//Crio o stream para ser armazenado num arquivo pdf
    		PdfStream stream = new PdfStream(infile,writer);
    		//Compacta os dados
    		stream.flateCompress();
    		try{
        		//Coloca o stream em writer
    			writer.addToBody(stream); //retorna um PdfIndirectObject 
    			
        		//Converte o arquivo para pdf
        	    //stream.toPdf(writer,new FileOutputStream(outputFile));
    		}catch(IOException e){}
    	}
    	
    	try{
    		infile.close();    		
    	}catch(IOException e){}
    	documento.close();
    }
	
	public static void main(String[] args) {
		ConvertPDF exemplo = new ConvertPDF();
		exemplo.ConvertToPDF("teste.doc","legal.pdf");
	}
}

Apresentando os seguintes erros:

Exception in thread "main" ExceptionConverter: java.io.IOException: The document has no pages.
	at com.lowagie.text.pdf.PdfPages.writePageTree(Unknown Source)
	at com.lowagie.text.pdf.PdfWriter.close(Unknown Source)
	at com.lowagie.text.pdf.PdfDocument.close(Unknown Source)
	at com.lowagie.text.Document.close(Unknown Source)
	at bernardes.ConvertPDF.ConvertToPDF(ConvertPDF.java:58 )
	at bernardes.ConvertPDF.main(ConvertPDF.java:63)

Pelo que entendi isto está ocorrendo, pois o documento não apresenta páginas, contudo já tentei de várias formas para que o nº de pág. do arquivo pdf seja igual ao do arquivo doc, mas tudo em vão. Alguém poderia me ajudar ou pelo menos mostrar o caminho? Muito obrigado.

Thiago Bernardes

1 Resposta

T

Bom o iText não converte diretamente um arquivo .doc para um arquivo .pdf. Se você precisa disso, você precisa usar outro pacote.

Do site do iText ( http://www.lowagie.com/iText/faq.html#doc2pdf )

Can I convert WORD doc-files or RTF to PDF using iText?
No, iText is only able to generate RTF. It doesn’t do RTF or Word-doc parsing. Try Apache POI.

Criado 2 de junho de 2005
Ultima resposta 2 de jun. de 2005
Respostas 1
Participantes 2