最近碰到一个Html转PDF的需求,看了一下基本上都是需要依赖Wkhtmltopdf,需要在Windows或者linux安装这个可以后使用。找了一下选择了HtmlToPDFCore,这个库是对Wkhtmltopdf.NetCore简单二次封装,这个库的好处就是通过NuGet安装HtmlToPDFCore就带了Windows/Mac/Linux的依赖包,就是包有点大。也可以使用HtmlToPDFCore包含了Wkhtmltopdf.NetCore,直接用Wkhtmltopdf.NetCore也是可以的。
下面总结一下碰到的问题:
1、权限问题
An error occurred trying to start process '/path/rotativa/Linux/wkhtmltopdf' with working directory '/path'. Permission denied
本质上Wkhtmltopdf.NetCore是通过进程调用Wkhtmltopdf的,在Linux会有执行权限问题,需要给到wkhtmltopdf执行权限
2、中文乱码的问题
中文在Windows是正常的,但是Linux有问题
# 安装中文字体包
sudo apt-get update
sudo apt-get install -y \
fonts-wqy-microhei \
fonts-wqy-zenhei \
fonts-noto-cjk \
ttf-mscorefonts-installer \
fontconfig
# 刷新字体缓存
sudo fc-cache -fv
# 验证中文字体安装
fc-list :lang=zh
3、直接通过wkhtmltopdf检查是否可以正常使用
wkhtmltopdf是可以直接调用的
如果输出的pdf是正常的,那么在代码里调用也是正常的
接下来就可以正常使用了:
HtmlToPDFCore.HtmlToPDF htmlToPDF = new HtmlToPDFCore.HtmlToPDF();
var html ="<html><body>123中文</body></html>";
return File(htmlToPDF.ReturnPDF(html), "application/pdf", $"{id}_{DateTime.Now:yyyyMMddHHmmss}.pdf");
HtmlToPDFCore项目地址:https://github.com/carloscds/HtmlToPDFCore
来源链接:https://www.cnblogs.com/dx5800/p/18910695
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容