public virtual void ToPdf(string filePath) { var content = ToString(); var doc = DrawingDimensions.ToPdfDoc(content); var printSv = Ruler?.StartValue ?? 0; var printEv = Ruler?.EndValue ?? 0; var printEpc = Ruler?.GetEpochName() ?? string.Empty; var fs = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None); using (var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, fs)) { doc.Open(); var paragraph = new iTextSharp.text.Paragraph(content, iTextSharp.text.FontFactory.GetFont(iTextSharp.text.FontFactory.COURIER)) { ExtraParagraphSpace = 0F, FirstLineIndent = 0F, IndentationLeft = 0F, IndentationRight = 0F, PaddingTop = 0F, SpacingBefore = 0F, SpacingAfter = 0F }; doc.Add(paragraph); doc.AddTitle(Name); doc.AddAuthor(System.Reflection.Assembly.GetExecutingAssembly().GetName().Name); doc.AddSubject($"{nameof(Occidental)} timeline plate for '{Name}' from {printSv} to {printEv} {printEpc}"); doc.AddCreator(System.Reflection.Assembly.GetExecutingAssembly().GetName().Name); doc.AddCreationDate(); doc.Close(); } }