1: | using System; | |
2: | using System.IO; | |
3: | using System.util; | |
4: | ||
5: | using iTextSharp.text; | |
6: | using iTextSharp.text.pdf; | |
7: | using iTextSharp.text.xml; | |
8: | using System.Collections; | |
9: | //using iTextSharp.tutorial.Base; | |
10: | ||
11: | namespace iTextSharp.tutorial.Chap07 | |
12: | { | |
13: | /// <summary> | |
14: | /// Data Merging | |
15: | /// </summary> | |
16: | public class Chap0705 | |
17: | { | |
18: | ||
19: | public Chap0705() | |
20: | { | |
21: | ||
22: | Console.WriteLine("Chapter 7 example 5: simple database example"); | |
23: | ||
24: | int i = 0; | |
25: | try | |
26: | { | |
27: | StreamReader reader = new StreamReader(new FileStream("simpleDB0705.txt", FileMode.Open)); | |
28: | ||
29: | String line; | |
30: | while ((line = reader.ReadLine()) != null) | |
31: | { | |
32: | ||
33: | Hashtable tagmap = new Hashtable(); | |
34: | ||
35: | StringTokenizer tokenizer = new StringTokenizer(line, "|"); | |
36: | ||
37: | XmlPeer peer = new XmlPeer(ElementTags.ITEXT, "letter"); | |
38: | tagmap.Add(peer.Alias, peer); | |
39: | ||
40: | if (tokenizer.HasMoreTokens()) | |
41: | { | |
42: | peer = new XmlPeer(ElementTags.CHUNK, "givenname"); | |
43: | peer.Content = tokenizer.NextToken(); | |
44: | tagmap.Add(peer.Alias, peer); | |
45: | ||
46: | } | |
47: | if (tokenizer.HasMoreTokens()) | |
48: | { | |
49: | peer = new XmlPeer(ElementTags.CHUNK, "name"); | |
50: | peer.Content = tokenizer.NextToken(); | |
51: | tagmap.Add(peer.Alias, peer); | |
52: | ||
53: | } | |
54: | if (tokenizer.HasMoreTokens()) | |
55: | { | |
56: | peer = new XmlPeer(ElementTags.CHUNK, "mail"); | |
57: | peer.Content = tokenizer.NextToken(); | |
58: | tagmap.Add(peer.Alias, peer); | |
59: | ||
60: | } | |
61: | if (tokenizer.HasMoreTokens()) | |
62: | { | |
63: | peer = new XmlPeer(ElementTags.ANCHOR, "website"); | |
64: | String reference = tokenizer.NextToken(); | |
65: | peer.Content = reference; | |
66: | peer.AddValue(ElementTags.REFERENCE, reference); | |
67: | peer.AddValue(ElementTags.COLOR, "#0000FF"); | |
68: | tagmap.Add(peer.Alias, peer); | |
69: | ||
70: | } | |
71: | ||
72: | // step 1: creation of a document-object | |
73: | Document document = new Document(PageSize.A4, 80, 50, 30, 65); | |
74: | ||
75: | // step 2: | |
76: | // we create a writer that listens to the document | |
77: | PdfWriter.GetInstance(document, new FileStream("Chap0705_" + (++i) + ".pdf", FileMode.Create)); | |
78: | ||
79: | // step 3: we parse the document | |
80: | XmlParser.Parse(document, "simpleLetter0705.xml", tagmap); | |
81: | } | |
82: | } | |
83: | catch(Exception e) | |
84: | { | |
85: | Console.Error.WriteLine(e.Message); | |
86: | Console.Error.WriteLine(e.StackTrace); | |
87: | } | |
88: | } | |
89: | } | |
90: | } |