예제 #1
0
        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();
            }
        }