using System; using System.IO; using iText.IO.Font.Constants; using iText.Kernel.Font; using iText.Kernel.Pdf; using iText.Layout; using iText.Layout.Element; using iText.Layout.Hyphenation; using iText.Layout.Properties; namespace iText.Highlevel.Chapter04 { /// Bruno Lowagie (iText Software) public class C04E05_ParagraphAndDiv2 { public const String SRC = "../../../resources/txt/jekyll_hyde.txt"; public const String DEST = "../../../results/chapter04/jekyll_hydeV2.pdf"; public static void Main(String[] args) { FileInfo file = new FileInfo(DEST); file.Directory.Create(); new C04E05_ParagraphAndDiv2().CreatePdf(DEST); } public virtual void CreatePdf(String dest) { //Initialize PDF document PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); // Initialize document Document document = new Document(pdf); PdfFont font = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN); PdfFont bold = PdfFontFactory.CreateFont(StandardFonts.HELVETICA_BOLD); document.SetTextAlignment(TextAlignment.JUSTIFIED).SetHyphenation(new HyphenationConfig("en", "uk", 3, 3)); StreamReader sr = File.OpenText(SRC); String line; Div div = new Div(); while ((line = sr.ReadLine()) != null) { document.Add(new Paragraph(line).SetFont(bold).SetFontSize(12).SetMarginBottom(0).SetKeepWithNext(true)); div = new Div().SetFont(font).SetFontSize(11).SetMarginBottom(18); while ((line = sr.ReadLine()) != null) { div.Add(new Paragraph(line).SetMarginBottom(0).SetFirstLineIndent(36)); if (String.IsNullOrEmpty(line)) { document.Add(div); break; } } } document.Add(div); //Close document document.Close(); } } }