package net.windward.format.pdf.test;

import com.lowagie.text.*;
import com.lowagie.text.pdf.*;

import java.awt.geom.Rectangle2D;
import java.awt.font.*;
import java.text.*;

import net.windward.util.*;

/**
 *
 *
 * @author David Thielen
 * @version 1.0 Jul 27, 2003
 */
public class TextWidthTest {

	private static FontRenderContext frc = new FontRenderContext(null, false, false);

	public static void main(String[] args) {

		String text = "Reports";
		int fontSize = 24;

		// register the iText fonts
		RegisterFonts.registerDefaultFonts();

		// use iText to get width
		com.lowagie.text.Font font = FontFactory.getFont( "Times New Roman", "Cp1252", false, fontSize, com.lowagie.text.Font.BOLD);
		BaseFont bf = font.getBaseFont();
		float width = bf.getWidthPoint( text, fontSize );
		System.out.println("iText width = " + width);

		// use java
		AttributedString as = new AttributedString(text);
		as.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, 0, text.length());
		java.awt.Font font2 = new java.awt.Font( "Times New Roman", java.awt.Font.PLAIN, fontSize);
		as.addAttribute(TextAttribute.FONT, font2, 0, text.length());
		AttributedCharacterIterator aci = as.getIterator();
		AttributedString asBlk = new AttributedString(aci, 0, text.length());
		TextLayout tl = new TextLayout(asBlk.getIterator(), frc);
		width = tl.getAdvance();
		System.out.println("java width = " + width);

		Rectangle2D rect = tl.getBounds();
		System.out.println("java bounds width = " + rect.getWidth());

		// second java method
		rect = font2.getStringBounds( text, frc );
		System.out.println("java bounds method 2 width = " + rect.getWidth());
	}
}
