Mega Code Archive

 
Categories / Java Tutorial / PDF
 

Use DefaultFontMapper

import java.awt.Color; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.io.FileOutputStream; import java.util.Iterator; import java.util.Map; import com.lowagie.text.Document; import com.lowagie.text.Rectangle; 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 MainClass {   public static void main(String[] args) throws Exception {     Document document = new Document(new Rectangle(100, 100));     PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(         "sun_tutorial_with_text.pdf"));     document.open();     PdfContentByte cb = writer.getDirectContent();     PdfTemplate tp = cb.createTemplate(100, 100);     DefaultFontMapper mapper = new DefaultFontMapper();     mapper.insertDirectory("c:/windows/fonts");     String name;     Map map = mapper.getMapper();     for (Iterator i = map.keySet().iterator(); i.hasNext();) {       name = (String) i.next();       System.out.println(name + ": "           + ((DefaultFontMapper.BaseFontParameters) map.get(name)).fontName);     }     Graphics2D g2 = tp.createGraphics(100, 100, mapper);     g2.setColor(Color.black);     java.awt.Font thisFont = new java.awt.Font("Garamond", java.awt.Font.PLAIN, 18);     g2.setFont(thisFont);     String pear = "Pear";     FontMetrics metrics = g2.getFontMetrics();     int width = metrics.stringWidth(pear);     g2.drawString(pear, (100 - width) / 2, 20);     g2.dispose();     cb.addTemplate(tp, 0, 0);     document.close();   } }