Создание титульного листа силами iTextSharp для PDF - C#

Узнай цену своей работы

Формулировка задачи:

Доброго дня. Есть задача создать титульный лист. Я использую библиотеку iTextSharp. Возникает вопрос как это сделать? Как добавить пробелы, отступы и тому подобное? Гуглил интернет и понял, что можно использовать силы html для решения такой задачи, но как понял, что и iTextSharp вполне неплохо справится, но кода займет это больше. Создал табличный html файлик где основные поля для титульного листа:
Листинг программы
  1. <!DOCTYPE html>
  2. <head>
  3. <meta http-equiv="Content-Type"content="text/html;charset=utf-8">
  4. <title>Отчет</title>
  5. </head>
  6. <body>
  7. <table border="1">
  8. <tr>
  9. <td><h1 align="center">Организация *********</h1></td>
  10. </tr>
  11. <tr>
  12. <td>
  13. <p align="center">Тема:</p>
  14. <p align="center">"***********"</p>
  15. </td>
  16. </tr>
  17. <tr>
  18. <td>
  19. <div align="right">
  20. <p>Выполнил:</p>
  21. <p>*********************</p>
  22. <br>
  23. </div>
  24. </td>
  25. </tr>
  26. <tr>
  27. <td><p align="center">Город, год****************<p></td>
  28. </tr>
  29. </table>
  30. </body>
  31. </html>
Возникает вопрос как его добавить в pdf файл с заменой полей? Так же вопрос, стоит ли игра свеч с html, может стоит сделать как-то иначе? Читал, что как-то можно сделать html "маску" в которую можно будет всё подставлять, но не могу найти и понять как и куда? А так же вопрос как сделать титульный лист силами только библиотеки iTextSharp? Прошу подсказать как это сделать и как лучше. Заранее спасибо.

Решение задачи: «Создание титульного листа силами iTextSharp для PDF»

textual
Листинг программы
  1. private static void Main(string[] args)
  2.         {
  3.             using (FileStream fs = new FileStream("file.pdf", FileMode.Create, FileAccess.Write))
  4.             {
  5.                 Document doc = new Document(PageSize.A4);
  6.                 PdfWriter writer = PdfWriter.GetInstance(doc, fs);
  7.                 doc.Open();
  8.  
  9.                 string ttf = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIAL.TTF");
  10.                 BaseFont bf = BaseFont.CreateFont(ttf, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
  11.  
  12.                 PdfContentByte cb = writer.DirectContent;
  13.                 cb.Rectangle(10f, 10f, doc.PageSize.Width - 20f, doc.PageSize.Height - 20f);
  14.                 cb.SetFontAndSize(bf, 40);
  15.                 cb.BeginText();
  16.                 cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "DOCUMENT TITLE", 300f, doc.PageSize.Height - 100f, 0);
  17.                 cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, DateTime.Now.Year.ToString("#### г."), 300f, 100f, 0);
  18.                 cb.EndText();
  19.                 cb.Stroke();
  20.  
  21.                 Font f = new Font(bf, 14);
  22.                 ColumnText ct = new ColumnText(cb);
  23.                 string text = "На дощатой террасе вблизи можжевельника, жена небезызвестного местного подьячего веснушчатая Аграфена Саввична исподтишка потчевала коллежского асессора Аполлона Филипповича моллюсками и винегретом под  аккомпанемент аккордеона и виолончели.";
  24.                 ct.SetSimpleColumn(new Phrase(new Chunk(text, f)),40, 600, doc.PageSize.Width - 40f, 0, 30, Element.ALIGN_LEFT | Element.ALIGN_TOP);
  25.                 ct.Go();
  26.                
  27.                 doc.Close();
  28.             }
  29.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут