📌 Как из HTML сгенерировать PDF в .NET с помощью PuppeteerSharp и Handlebars
Этот пример показывает, как взять HTML-шаблон, подставить данные через Handlebars и преобразовать его в PDF с помощью PuppeteerSharp.
- Читаем HTML-шаблон InvoiceTemplate.html и компилируем его в функцию.
- Подставляем данные, получаем готовый HTML.
- PuppeteerSharp скачивает Chromium.
- Открываем браузер в headless-режиме, создаём страницу, загружаем туда HTML.
- Сохраняем страницу как PDF в формате A4, с фоном и нужными отступами.
Код:
Таким образом можно автоматизировать генерацию счётов, отчётов или любых документов из HTML прямо в C#.
Этот пример показывает, как взять HTML-шаблон, подставить данные через Handlebars и преобразовать его в PDF с помощью PuppeteerSharp.
- Читаем HTML-шаблон InvoiceTemplate.html и компилируем его в функцию.
- Подставляем данные, получаем готовый HTML.
- PuppeteerSharp скачивает Chromium.
- Открываем браузер в headless-режиме, создаём страницу, загружаем туда HTML.
- Сохраняем страницу как PDF в формате A4, с фоном и нужными отступами.
Код:
var template = File.ReadAllText("Templates/InvoiceTemplate.html");
var compiled = Handlebars.Compile(template);
string html = compiled(data);
// Скачать Chromium
var fetcher = new BrowserFetcher();
await fetcher.DownloadAsync();
// Рендер в PDF
using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
using var page = await browser.NewPageAsync();
await page.SetContentAsync(html);
byte[] pdf = await page.PdfDataAsync(new PdfOptions {
Format = PaperFormat.A4,
PrintBackground = true,
MarginOptions = new MarginOptions { Top = "50px", Right = "20px", Bottom = "50px", Left = "20px" }
});
Таким образом можно автоматизировать генерацию счётов, отчётов или любых документов из HTML прямо в C#.