/* * $Id$ * * This code is free software. It may only be copied or modified * if you include the following copyright notice: * * --> Copyright 2006 by Mark Hall <-- * * This code is part of the 'iText Tutorial'. * You can find the complete tutorial at the following address: * http://itextdocs.lowagie.com/tutorial/ * * This code is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * itext-questions@lists.sourceforge.net */ package com.lowagie.examples.rtf.features.tabs; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.text.DecimalFormat; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.rtf.RtfWriter2; import com.lowagie.text.rtf.text.RtfTab; import com.lowagie.text.rtf.text.RtfTabGroup; /** * The TabGroups example demonstrates how using the RtfTabGroup class * simplifies the repeated use of a set of tab stops. * * @version $Revision$ * @author Mark Hall (Mark.Hall@mail.room3b.eu) */ public class TabGroups { /** * Using the RtfTabGroup to simplify adding a set of tab stops. * * @param args Unused */ public static void main(String[] args) { System.out.println("Demonstrates how to use the RtfTabGroup to repeatedly add a set of tab stops"); try { Document document = new Document(); RtfWriter2.getInstance(document, new FileOutputStream("TabGroups.rtf")); document.open(); // Construct the RtfTabGroup object RtfTabGroup tabGroup = new RtfTabGroup(); // Add RtfTab tab stops at the desired positions tabGroup.add(new RtfTab(400, RtfTab.TAB_RIGHT_ALIGN)); tabGroup.add(new RtfTab(500, RtfTab.TAB_DECIMAL_ALIGN)); // Create a Paragraph object Paragraph par = new Paragraph(); // Add the tab group to the paragraph par.add(tabGroup); // Specify the tab positions using "\t" par.add("Description\tDate\tAmount"); document.add(par); DecimalFormat nf = new DecimalFormat("#.00"); double sum = 0; for(int i = 0; i < 10; i++) { double value = Math.random() * 100; sum = sum + value; par = new Paragraph(); // The RtfTabGroup can be reused for further paragraphs par.add(tabGroup); par.add("Item " + (i + 1) + "\t" + (12 + i) + ".03.2007\t" + nf.format(value)); document.add(par); } par = new Paragraph("", new Font(Font.TIMES_ROMAN, 12, Font.BOLD)); par.add(tabGroup); // If a tab in the RtfTabGroup is not needed, just add an empty tab stop in the text par.add("Total\t\t" + nf.format(sum)); document.add(par); document.close(); } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (DocumentException de) { de.printStackTrace(); } } }