Ti faccio un esempio rapidissimo.
Codice:
package rtfsample;
import java.io.*;
import com.lowagie.text.rtf.*;
import com.lowagie.text.*;
public class Main {
public static void main(String[] args) throws Throwable {
/** Crea il documento itext */
Document document = new Document(PageSize.A4);
/** Crea il flusso di destinazione della trasformazione in rtf. */
OutputStream out = new FileOutputStream("document.rtf");
/** Crea il trasformatore che traduce le operazioni sul documento
itext in formato rtf sul file "document.rtf" */
RtfWriter2 writer = RtfWriter2.getInstance(document, out);
/** Inizia a scrivere sul documento. */
document.open();
/** Questo font non è il font di AWT ma di itext. */
Font font = new Font(Font.HELVETICA, 18, Font.BOLD, java.awt.Color.BLACK);
/** Per aggiungere pezzi al documento itext si può usare il metodo
add(Element) di Document. Paragraph è un tipo di element. */
Paragraph title = new Paragraph("Titolo", font);
/** Aggiunge l'elemento paragrafo su creato al documento. Il traduttore
in rtf si occupa di trasformare questo elemento in notazione rtf sul
file di destinazione. */
document.add(title);
/** Come per Font, anche questo non è java.awt.Image ma un Image di
iText. Image è un elemento, come paragraph, e può essere inserito nel
document con lo stesso metodo add di prima. */
Image image = new Jpeg(Main.class.getResource("/res/immagine.jpg"));
/** Aggiunge l'immagine al documento. */
document.add(image);
/** Chiude il documento. La chiusura comporta chiusura del flusso sul
file. */
document.close();
}
}