PDF RTF Java

import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.geom.Area;
import java.awt.geom.Ellipse2D;
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.FontFactory;
import com.lowagie.text.pdf.DefaultFontMapper;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfTemplate;
import com.lowagie.text.pdf.PdfWriter;
public class G2DCircleIntersectPDF {
  public static void main(String[] args) {
    Document document = new Document();
    try {
      PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("G2DCircleIntersectPDF.pdf"));
      document.open();
      DefaultFontMapper mapper = new DefaultFontMapper();
      FontFactory.registerDirectories();
      mapper.insertDirectory("c:\\windows\\fonts");
      int w = 150;
      int h = 150;
      PdfContentByte cb = writer.getDirectContent();
      PdfTemplate tp = cb.createTemplate(w, h);
      Graphics2D g2 = tp.createGraphics(w, h, mapper);
      tp.setWidth(w);
      tp.setHeight(h);
      double ew = w / 2;
      double eh = h / 2;
      Ellipse2D.Double circle, circle1;
      circle = new Ellipse2D.Double(ew - 16, eh - 29, 50.0, 50.0);
      g2.setColor(Color.green);
      g2.fill(circle);
      g2.setColor(Color.red);
      circle1 = new Ellipse2D.Double(ew, eh, 50.0, 50.0);
      g2.fill(circle1);
      
      Area area1 = new Area(circle);
      Area area2 = new Area(circle1);
      
      g2.setColor(Color.BLUE);
      area1.intersect(area2);
      g2.fill(area1);
      
      g2.dispose();
      cb.addTemplate(tp, 50, 400);
    } catch (Exception e) {
      System.err.println(e.getMessage());
    }
    document.close();
  }
}
           
       
itext.zip( 1,748 k)