Arquivos
Criando ODT (Open Document Text) com JOpenDocument
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!
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!
