iTextSharp:用于创建PDF文件
DinkToPdf:一个.net核心wrapper允许使用wkhtmltopdf将HTML / CSS转换为PDF
创建HTML视图:创建一个HTML视图用于生成PDF,可以使用标准HTML和CSS构建视图,也可以使用Bootstrap等框架。
创建PDF生成器:创建一个PDF生成器类并添加依赖项,在该类中创建一个方法,该方法将HTML视图文件转换为PDF。
以下是完整的PDF生成器类示例:
using System.IO;
using DinkToPdf;
using DinkToPdf.Contracts;
namespace MyProject.Export
{
public class PdfGenerator : IPdfGenerator
{
private readonly IConverter _converter;
public PdfGenerator(IConverter converter)
{
_converter = converter;
}
public byte[] GeneratePdf(string html)
{
var doc = new HtmlToPdfDocument()
{
GlobalSettings = {
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4,
Margins = new MarginSettings() { Top = 10 },
},
Objects = {
new ObjectSettings() {
HtmlContent = html,
WebSettings = { DefaultEncoding = "utf-8" },
FooterSettings = { FontSize = 9, Right = "Page [page] of [toPage]", Line = true, Spacing = 2.812 }
}
}
};
return _converter.Convert(doc);
}
}
}
services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));
services.AddTransient();