Создание титульного листа силами 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();
}
}