Arquivos

Posts Tagged ‘geração’

Criando ODT (Open Document Text) com JOpenDocument

fevereiro 22, 2011 2 comentários

Seguindo com os tutorias sobre criação de arquivos em JAVA, mostrarei agora como criar ODT (Open Document Text) utilizando a biblioteca JOpenDocument. A mesma pode ser baixada aqui: http://www.jopendocument.org/

Basta colocar a mesma em seu classpath.

Para gerar o ODT, você precisa ter um TEMPLATE, então crie um documento em branco no Open Office e salve em algum lugar no qual o programa possa ver, no código fonte, substitua ODTTEMPLATE_LOCATION pelo local onde você salvou o arquivo e o nome do arquivo, por exemplo: .\template\modelo.odt

O código fonte para a geração é:

Os imports necessários:

import java.io.File;
import java.io.IOException;

import org.jopendocument.dom.ODPackage;
import org.jopendocument.dom.ODSingleXMLDocument;
import org.jopendocument.dom.text.Heading;
import org.jopendocument.dom.text.Paragraph;

O método em si:

public static void createOdt(String fileName, String sourceString){
 try {
 ODPackage p = new ODPackage(new File(ODTTEMPLATE_LOCATION));
 ODSingleXMLDocument doc = p.toSingle();

 final Heading heading = new Heading();
 heading.addContent("Auto generated ODT");
 doc.add(heading);

 final Paragraph paragraph = new Paragraph();
 paragraph.addContent(sourceString);
 doc.add(paragraph);

 p.saveAs(new File(fileName + ".odt"));
 }  catch (IllegalArgumentException e) {
 ErrorManager.showErrorMessage("createOdt", e.toString());
 } catch (IOException e) {
 ErrorManager.showErrorMessage("createOdt", e.toString());
 }
 }

Enjoy!

CategoriasJAVA Tags:, ,

Gerando arquivos PDF e RTF com Java

Tive a necessidade de gerar arquivos RTF e PDF em uma aplicação JAVA, então sai em busca de um componente para simplificar minha vida, acabei encontrando o Itext, que faz exatamente o que eu quero. O site do mesmo é http://itextpdf.com/ e os arquivos “jar” podem ser baixados aqui.

Utilizei a versão 2.1.7 pois a versão mais recente (5) não suporta ainda a criação de arquivos rtf.

Os criados de itext pularam da versao 2 para a 5 somente para seguir o padrão adotado na nomeclatura do Java.

A seguir, estão os códigos para geração de PDF e RTF, bem simplificados. Para os utilizar, basta chamar o método createPDF e createRTF respectivamente, além é claro, de baixar os jars do iText e colocar no classpath de sua aplicação.

  • Geração de PDF
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
/**
 * Responsible for pdf creation
 *
 * @author julianom
 *
 */
public class PdfCreator {
    /**
     * Create a pdf file
     *
     * @param fileName the name of the output file
     * @param sourceString the string that will be written in the pdf file
     */
    public static void createPdf(String fileName, String sourceString) {
	Document document = new Document();
	try {
	    PdfWriter.getInstance(document, new FileOutputStream(fileName + ".pdf"));
	    document.open();
	    document.add(new Paragraph(sourceString));
	} catch (DocumentException de) {
	    System.err.println(de.getMessage());
	} catch (IOException ioe) {
	    System.err.println(ioe.getMessage());
	}
	document.close();
    }
}
  • Geração de RTF
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.rtf.RtfWriter2;

/**
 * This class is responsible for RTF creation
 *
 * @author julianom
 *
 */
public class RtfCreator {
    /**
     * Create a rtf file
     *
     * @param fileName the name of the output file
     * @param sourceString the string that will be written in the pdf file
     */
    public static void createRtf(String fileName, String sourceString) {
	try {
	    Document document = new Document();
	    RtfWriter2.getInstance(document, new FileOutputStream(fileName
		    + ".rtf"));
	    document.open();
	    document.add(new Paragraph(sourceString));
	    document.close();
	} catch (FileNotFoundException e) {
	    e.printStackTrace();
	    System.err.println("Problem at RtfCreator - createRtf");
	} catch (DocumentException e) {
	    e.printStackTrace();
	    System.err.println("Problem at RtfCreator - createRtf");
	}
    }
}

Enjoy!

CategoriasJAVA Tags:, , , ,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 127 outros seguidores