O iText é uma biblioteca bastante usada para escrever e converter arquivos Pdf. Existia um projeto em paralelo que faz o mesmo, porém com rtf. O nome desse projeto é iTextRtf.
Embora o projeto tenha sido descontinuado, pode ser util um mini-tutorial com o objetivo de trabalhar com essa biblioteca de conversões.
A versão .jar disponível é a http://mvnrepository.com/artifact/com.lowagie/itext-rtf/2.1.7 (Ultima lançada ) . Nesse site ja contém o código do pom.xml.
Exemplo de uma aplicação padrão:
public class GerarPdf implements Serializable {
public void gerarPdf(String inputFile , String outputFile){
// create a new document
Document document = new Document();
// create a PDF writer to save the new document to disk
try {
PdfWriter writer2 = PdfWriter.getInstance(document, new FileOutputStream(outputFile));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// open the document for modifications
document.open();
// create a new parser to load the RTF file
RtfParser parser = new RtfParser(null);
// read the rtf file into a compatible document
try {
parser.convertRtfDocument(new FileInputStream(inputFile), document);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// save the pdf to disk
document.close();
System.out.println("Finished");
}
Atenção: O pdf gerado não suporta tabelas. Apenas Texto.
Para um projeto mais elaborado , recomendo utilizar JODConverter.