
На одном проекте возникла необходимость реализовать создание несложного отчета в PDF. Делал я это с помощью библиотеки itextsharp. Библиотека позволяет создавать PDF различными способами, самым простым мне показалось ручное рисование. Вот как это делается:
Создание документа
var document = new iTextSharp.text.Document();
using (var writer = PdfWriter.GetInstance(document, new FileStream("result.pdf", FileMode.Create)))
{
document.Open();
// do some work here
document.Close();
writer.Close();
}
Рисование линий
writer.DirectContent.MoveTo(35, 780);
writer.DirectContent.LineTo(430, 780);
Добавление картинки
var logo = iTextSharp.text.Image.GetInstance(new FileStream(@"Resources\logo.jpg", FileMode.Open));
logo.SetAbsolutePosition(440, 758);
writer.DirectContent.AddImage(logo);
Добавление текста
helvetica = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12);
helveticaBase = helvetica.GetCalculatedBaseFont(false);
writer.DirectContent.BeginText();
writer.DirectContent.SetFontAndSize(helveticaBase, 12f);
writer.DirectContent.ShowTextAligned(iTextSharp.text.Element.ALIGN_LEFT, "Hello world!", 35, 766, 0);
writer.DirectContent.EndText();
Документация
itextsharp — порт java библиотеки itext, API у них совпадает. read more