我正在用 C# 编写一个报告项目,该项目使用 Razor 页面生成 HTML 和 HiQ 以将 HTML 转换为 PDF。在我们添加一个包含大量数据的新报告之前,它一直运行良好——原始数据为 2.5mb,另存为文本文件,最终结果为 5.8m 200 页的 pdf。
这份报告的转换过程花费了令人无法接受的时间——1.5 分钟。作为一项测试,我们删除了使用 OpenHtmlToPdf* 的旧代码,该代码在 20 秒内运行相同的报告。
有没有办法调整我们的代码或 HiQ 引擎来提高性能?
我们的代码:
public Stream ConvertToPdf(string html, ReportSettings reportSettings)
{
var htmlToPdf = new HtmlToPdf();
htmlToPdf.SerialNumber = SerialNumber;
if (reportSettings.Landscape)
{
htmlToPdf.Document.PageOrientation = PdfPageOrientation.Landscape;
}
htmlToPdf.Document.PageSize = PdfPageSize.Letter;
htmlToPdf.Document.Margins = new PdfMargins(25, 25, 15, 15);
SetFooter(htmlToPdf);
var pdfData = htmlToPdf.ConvertHtmlToMemory(html, Url);
var memoryStream = new MemoryStream(pdfData);
return memoryStream;
}
- 我们切换到 HiQ 是因为 OpenHtmlToPdf 不再更新并且不支持 CSS3。