using System; using System.Collections.Generic; using System.IO; using iText.Highlevel.Util; using iText.IO.Image; using iText.Kernel.Pdf; using iText.Kernel.Pdf.Action; using iText.Layout; using iText.Layout.Borders; using iText.Layout.Element; namespace iText.Highlevel.Chapter04 { /// Bruno Lowagie (iText Software) public class C04E01_DivExample1 { public const String SRC = "../../../resources/data/jekyll_hyde.csv"; public const String DEST = "../../../results/chapter04/jekyll_hyde_overviewV1.pdf"; public static void Main(String[] args) { FileInfo file = new FileInfo(DEST); file.Directory.Create(); new C04E01_DivExample1().CreatePdf(DEST); } public virtual void CreatePdf(String dest) { PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); Document document = new Document(pdf); IList> resultSet = CsvTo2DList.Convert(SRC, "|"); resultSet.RemoveAt(0); foreach (IList record in resultSet) { Div div = new Div().SetBorderLeft(new SolidBorder(2)).SetPaddingLeft(3).SetMarginBottom(10); String url = String.Format("http://www.imdb.com/title/tt{0}", record[0]); Link movie = new Link(record[2], PdfAction.CreateURI(url)); div.Add(new Paragraph(movie.SetFontSize(14))).Add(new Paragraph(String.Format("Directed by {0} ({1}, {2})", record [3], record[4], record[1]))); FileInfo file = new FileInfo(String.Format("../../../resources/img/{0}.jpg", record[0])); if (file.Exists) { iText.Layout.Element.Image img = new Image(ImageDataFactory.Create(file.FullName)); img.ScaleToFit(10000, 120); div.Add(img); } document.Add(div); } document.Close(); } } }