CSHARP_1001_NOTES Telegram 747
📌 Как из HTML сгенерировать PDF в .NET с помощью PuppeteerSharp и Handlebars

Этот пример показывает, как взять 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#.



tgoop.com/csharp_1001_notes/747
Create:
Last Update:

📌 Как из HTML сгенерировать PDF в .NET с помощью PuppeteerSharp и Handlebars

Этот пример показывает, как взять 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#.

BY C# 1001 notes




Share with your friend now:
tgoop.com/csharp_1001_notes/747

View MORE
Open in Telegram


Telegram News

Date: |

Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. The Standard Channel Read now bank east asia october 20 kowloon To delete a channel with over 1,000 subscribers, you need to contact user support
from us


Telegram C# 1001 notes
FROM American