| 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: | } |