Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
PDFsharp — MIT
https://github.com/empira/PDFsharp
// создали менеджер ресурсов и добавили картинки
ResourceManager resourceManager = new ResourceManager();
resourceManager.RegisterResource(new Apitron.PDF.Kit.FixedLayout.Resources.XObjects.Image("Left", "left.png"));
resourceManager.RegisterResource(new Apitron.PDF.Kit.FixedLayout.Resources.XObjects.Image("Right", "right.png"));
// создали ПДФ документ со своим стилем
FlowDocument document = new FlowDocument { Margin = new Thickness(18) };
// общий стиль для данных в ячейках таблицы
document.StyleManager.RegisterStyle("grid#iApitron", new Style { InnerBorderColor = RgbColors.LightGray, Align = Align.Center, Font = new Font(StandardFonts.Helvetica, 12) });
// добавляем стиль для заголовка таблицы
document.StyleManager.RegisterStyle("textblock.h1", new Style { Font = new Font(StandardFonts.HelveticaBold, 20) });
// сам грид
Grid grid = new Grid(Length.FromPercentage(33), Length.FromPercentage(33), Length.FromPercentage(33)) { Id = "iApitron" };
// добавляем строки таблицы с данными
grid.Add(new GridRow(Section.Empty, new TextBlock("Ну, заяц!"){Class="h1"}, Section.Empty));
grid.Add(new GridRow(new TextBlock("Col 1 Row 1"),new TextBlock("Col 2 Row 1"),new TextBlock("Col 3 Row 1")));
grid.Add(new GridRow(new TextBlock("Col 1 Row 2"),new TextBlock("Col 2 Row 2"),new TextBlock("Col 3 Row 2")));
grid.Add(new GridRow(new Image("Left"),new TextBlock("Col 2 Row 3"),new Image("Right")));
document.Add(grid);
// сохраним документ
using (Stream stream = File.Create("Apitron_table.pdf"))
{
document.Write(stream, resourceManager, new PageBoundary(Boundaries.Ledger));
}
Обзор C# библиотек для работы с PDF