/* * $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.extensions.hf; import java.io.FileNotFoundException; import java.io.FileOutputStream; import com.lowagie.text.Chapter; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Element; import com.lowagie.text.HeaderFooter; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.rtf.RtfWriter2; import com.lowagie.text.rtf.headerfooter.RtfHeaderFooter; /** * The ChapterHeaderFooter example shows how by using Chapters it is * possible to have different headers and footers for different * parts of the document. * * @version $Revision$ * @author Mark Hall (Mark.Hall@mail.room3b.eu) */ public class ChapterHeaderFooter { /** * Different headers and footers per Chapter example. * * @param args Unused */ public static void main(String[] args) { System.out.println("Demonstrates creating different headers and footers per Chapter"); try { Document document = new Document(); RtfWriter2.getInstance(document, new FileOutputStream("ChapterHeaderFooter.rtf")); // Create the header identifying the current chapter. The first // chapter has to be set before the document is opened. Paragraph header = new Paragraph("Chapter 1"); header.setAlignment(Element.ALIGN_CENTER); document.setHeader(new RtfHeaderFooter(header)); // If the footer (or header) is to be the same for all Chapters // then it has to be set before the document is opened and is // then automatically set for all Chapters. document.setFooter(new HeaderFooter(new Phrase("This is page "), new Phrase("."))); document.open(); Chapter chapter1 = new Chapter("Chapter 1", 1); chapter1.add(new Paragraph("This document has different headers and footers " + " for each chapter.")); document.add(chapter1); // After adding the first chapter set the header for the second chapter. header = new Paragraph("Chapter 2"); header.setAlignment(Element.ALIGN_CENTER); document.setHeader(new RtfHeaderFooter(header)); Chapter chapter2 = new Chapter("Chapter 2", 2); chapter2.add(new Paragraph("This is the content of chapter 2.")); document.add(chapter2); // After adding the second chapter set the header for the third chapter. header = new Paragraph("Chapter 3"); header.setAlignment(Element.ALIGN_CENTER); document.setHeader(new RtfHeaderFooter(header)); Chapter chapter3 = new Chapter("Chapter 3", 3); chapter3.add(new Paragraph("Chapter 3 is very boring.")); document.add(chapter3); document.close(); } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (DocumentException de) { de.printStackTrace(); } } }