1: | using System; | |
2: | using System.IO; | |
3: | ||
4: | using iTextSharp.text; | |
5: | using iTextSharp.text.rtf; | |
6: | ||
7: | ||
8: | namespace iTextSharp.tutorial.Chap08 | |
9: | { | |
10: | /// <summary> | |
11: | /// This example creates a RTF document with more complex headers and footers | |
12: | /// using the RtfHeaderFooters class. | |
13: | /// @author <a href="mailto:mhall@myrealbox.com">Mark.Hall@myrealbox.com</a> | |
14: | /// </summary> | |
15: | public class Chap0803 | |
16: | { | |
17: | ||
18: | public Chap0803() | |
19: | { | |
20: | ||
21: | Console.WriteLine("Chapter 8 example 3: RTF with the RtfHeaderFooters class"); | |
22: | ||
23: | /* Create a new document */ | |
24: | Document document = new Document(PageSize.A4); | |
25: | try | |
26: | { | |
27: | /* Create a RtfWriter and a PdfWriter for the document */ | |
28: | RtfWriter rtf = RtfWriter.GetInstance(document, new FileStream("Chap0803.rtf", FileMode.Create)); | |
29: | ||
30: | /* We specify that the RTF file has a Title Page */ | |
31: | rtf.SetHasTitlePage(true); | |
32: | ||
33: | /* We create headers and footers for the RTF file */ | |
34: | RtfHeaderFooters header = new RtfHeaderFooters(); | |
35: | RtfHeaderFooters footer = new RtfHeaderFooters(); | |
36: | ||
37: | /* We add a header that will only appear on the first page */ | |
38: | header.Set(RtfHeaderFooters.FIRST_PAGE, new HeaderFooter(new Phrase("This header is only on the first page"), false)); | |
39: | /* We add a header that will only appear on left-side pages */ | |
40: | header.Set(RtfHeaderFooters.LEFT_PAGES, new HeaderFooter(new Phrase("This header is only on left pages"), false)); | |
41: | /* We add a header that will only appear on right-side pages */ | |
42: | header.Set(RtfHeaderFooters.RIGHT_PAGES, new HeaderFooter(new Phrase("This header is only on right pages. "), false)); | |
43: | /* We add a footer that will appear on all pages except the first (because of the title page) | |
44: | Because the header has different left and right page footers, we have to add the footer to | |
45: | both the left and right pages. */ | |
46: | footer.Set(RtfHeaderFooters.LEFT_PAGES, new HeaderFooter(new Phrase("This footer is on all pages except the first. Page: "), true)); | |
47: | footer.Set(RtfHeaderFooters.RIGHT_PAGES, new HeaderFooter(new Phrase("This footer is on all pages except the first. Page: "), true)); | |
48: | ||
49: | /* Open the document */ | |
50: | document.Open(); | |
51: | ||
52: | ||
53: | /* We add the header and footer */ | |
54: | document.Header = header; | |
55: | document.Footer = footer; | |
56: | ||
57: | ||
58: | /* We add some content */ | |
59: | Chapter chapter = new Chapter(new Paragraph("Advanced RTF headers and footers", new Font(Font.HELVETICA, 16, Font.BOLD)), 1); | |
60: | ||
61: | chapter.Add(new Paragraph("This document demonstrates the use of advanced RTF headers and footers.")); | |
62: | ||
63: | for(int i = 0; i < 300; i++) | |
64: | { | |
65: | chapter.Add(new Paragraph("Line " + i)); | |
66: | } | |
67: | document.Add(chapter); | |
68: | } | |
69: | catch(DocumentException de) | |
70: | { | |
71: | Console.Error.WriteLine(de.Message); } | |
72: | catch(IOException ioe) | |
73: | { | |
74: | Console.Error.WriteLine(ioe.Message); } | |
75: | ||
76: | /* Close the document */ | |
77: | document.Close(); | |
78: | } | |
79: | } | |
80: | } |