之前生成pdf一直用的是iTextSharp,但生成的pdf一是显示效果跟预想的不太一样,二是部分css不兼容,反正开发体验很不好。
Spire.XLS 是收费的一个库,如果没有付费会对生成的pdf打上水印,有一个免费版本Free Spire.XLS,如果对打印的页数在2页之内的话,这个免费版本是不二之选,无论是生成效果还是效率。
如果可以html生成pdf,在html里面不存在很多图片的情况下,HtmlToPdfConverter这个库是非常好的选择,为什么要说明不存在很多图片呢,因为如果存在很多图片,会进行加载,效率非常的低,100张图片生成出来要100多秒。
// 创建PDF转换器
var converter = new HtmlToPdfConverter();
// 设置中文字体(如果需要)
converter.CustomWkHtmlArgs = " --dpi 300"; // 自定义WkHtmlToPdf参数
converter.Size = NReco.PdfGenerator.PageSize.A4; // 设置页面大小
converter.Orientation = PageOrientation.Portrait; // 设置页面方向
// 将HTML内容转换为PDF
byte[] pdfBytes = converter.GeneratePdf(html);
#endregion
//先保存在文件夹然后从文件夹下载
fileName = $"{Guid.NewGuid()}.pdf";
File.WriteAllBytes(Path.Combine(filePath, fileName), pdfBytes);