Создание титульного листа силами iTextSharp для PDF - C#
Формулировка задачи:
Доброго дня. Есть задача создать титульный лист. Я использую библиотеку iTextSharp. Возникает вопрос как это сделать? Как добавить пробелы, отступы и тому подобное? Гуглил интернет и понял, что можно использовать силы html для решения такой задачи, но как понял, что и iTextSharp вполне неплохо справится, но кода займет это больше. Создал табличный html файлик где основные поля для титульного листа:
Возникает вопрос как его добавить в pdf файл с заменой полей? Так же вопрос, стоит ли игра свеч с html, может стоит сделать как-то иначе? Читал, что как-то можно сделать html "маску" в которую можно будет всё подставлять, но не могу найти и понять как и куда?
А так же вопрос как сделать титульный лист силами только библиотеки iTextSharp?
Прошу подсказать как это сделать и как лучше.
Заранее спасибо.
<!DOCTYPE html> <head> <meta http-equiv="Content-Type"content="text/html;charset=utf-8"> <title>Отчет</title> </head> <body> <table border="1"> <tr> <td><h1 align="center">Организация *********</h1></td> </tr> <tr> <td> <p align="center">Тема:</p> <p align="center">"***********"</p> </td> </tr> <tr> <td> <div align="right"> <p>Выполнил:</p> <p>*********************</p> <br> </div> </td> </tr> <tr> <td><p align="center">Город, год****************<p></td> </tr> </table> </body> </html>
Решение задачи: «Создание титульного листа силами iTextSharp для PDF»
textual
Листинг программы
private static void Main(string[] args) { using (FileStream fs = new FileStream("file.pdf", FileMode.Create, FileAccess.Write)) { Document doc = new Document(PageSize.A4); PdfWriter writer = PdfWriter.GetInstance(doc, fs); doc.Open(); string ttf = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIAL.TTF"); BaseFont bf = BaseFont.CreateFont(ttf, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); PdfContentByte cb = writer.DirectContent; cb.Rectangle(10f, 10f, doc.PageSize.Width - 20f, doc.PageSize.Height - 20f); cb.SetFontAndSize(bf, 40); cb.BeginText(); cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "DOCUMENT TITLE", 300f, doc.PageSize.Height - 100f, 0); cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, DateTime.Now.Year.ToString("#### г."), 300f, 100f, 0); cb.EndText(); cb.Stroke(); Font f = new Font(bf, 14); ColumnText ct = new ColumnText(cb); string text = "На дощатой террасе вблизи можжевельника, жена небезызвестного местного подьячего веснушчатая Аграфена Саввична исподтишка потчевала коллежского асессора Аполлона Филипповича моллюсками и винегретом под аккомпанемент аккордеона и виолончели."; ct.SetSimpleColumn(new Phrase(new Chunk(text, f)),40, 600, doc.PageSize.Width - 40f, 0, 30, Element.ALIGN_LEFT | Element.ALIGN_TOP); ct.Go(); doc.Close(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д