Простой способ создать PDF на C#
На одном проекте возникла необходимость реализовать создание несложного отчета в 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 у них совпадает. Так что читать нужно документацию по itext (например здесь) и конвертировать примеры кода в C#. Информации именно по itextsharp практически нет.