下载 DinkToPdf NuGet包
IConverter类型在这DinkToPdf.Contracts命名空间下
public class FileConvertor
{
private readonly IConverter _converter;
public FileConvertor(IConverter converter)
{
_converter = converter;
}
/// <summary>
/// HTML转PDF
/// </summary>
/// <param name="HtmlBody">Html字符</param>
/// <param name="FileName">文件名称</param>
/// <returns></returns>
public FileStreamResult HtmlToPdf(string HtmlBody,string FileName)
{
try
{
var html = $@"<html><head><meta charset='utf-8'/><style></style></head><body>{HtmlBody}</body></html>";
var doc = new HtmlToPdfDocument()
{
GlobalSettings = {
ColorMode = ColorMode.Color,
Orientation = Orientation.Portrait,
PaperSize = PaperKind.A4,
},
Objects = {
new ObjectSettings() {
HtmlContent = html,
WebSettings = { DefaultEncoding = "utf-8", LoadImages = true },
}
}
};
// var converter = new BasicConverter(new PdfTools());
var pdf = _converter.Convert(doc);
var stream = new MemoryStream(pdf);
return new FileStreamResult(stream, "application/pdf")
{
FileDownloadName = $"{FileName}.pdf"
};
}
catch (Exception)
{
throw;
}
}
}