Chuyển HTML sang PDF bằng C#

HtmlToPdfConverter chuyển HTML thành PDF mà không cần trình duyệt: nó dựng một tài liệu Word rồi xuất tài liệu đó ra PDF. Những gì giữ lại được là những gì Word diễn đạt được, nên văn bản, bảng, danh sách và hình ảnh vẫn còn, còn bố cục flexbox và grid thì không.

using DocToolkit;

string html = "<h1>Invoice 2026-114</h1><p>Due on receipt</p>";
byte[] pdf = await HtmlToPdfConverter.ConvertAsync(html);
File.WriteAllBytes("output.pdf", pdf);

Cần những gì

  • Không cần trình duyệt, kể cả trình duyệt headless.
  • Không cần cài Office, cũng không cần LibreOffice.
  • Không có tệp native: chỉ có mã managed.
  • Không dùng mạng khi chạy, trừ khi bạn yêu cầu.

Nên biết

  • Bất đồng bộ: ConvertAsync nhận HTML dạng string và trả về Task<byte[]>.
  • Flexbox, grid, float và định vị tuyệt đối không được áp dụng, còn các tính năng không hỗ trợ bị bỏ qua mà không báo. Tệp PDF vẫn hợp lệ.
  • Mặc định là khổ A4; ConvertAsync(html, page) nhận một PageSetup để dùng khổ khác.
  • Ảnh từ xa mặc định bị tắt. RemoteImageOptions bật cho từng lần gọi, và mặc định vẫn chặn địa chỉ loopback và địa chỉ nội bộ (AllowPrivateAddresses cho phép các địa chỉ này).

Cài đặt

dotnet add package Ank.DocToolkit

NuGetTài liệu hướng dẫnGitHub