C# Wkhtmltopdf HTML转PDF碰到的题目

[复制链接]
发表于 2025-6-5 00:00:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
最近碰到一个Html转PDF的需求,看了一下根本上都是需要依赖Wkhtmltopdf,需要在Windows或者linux安装这个可以后使用。找了一下选择了HtmlToPDFCore,这个库是对Wkhtmltopdf.NetCore简单二次封装,这个库的好处就是通过NuGet安装HtmlToPDFCore就带了Windows/Mac/Linux的依赖包,就是包有点大。也可以使用HtmlToPDFCore包含了Wkhtmltopdf.NetCore,直接用Wkhtmltopdf.NetCore也是可以的。
下面总结一下碰到的题目:
1、权限题目
  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有题目
  1. # 安装中文字体包
  2. sudo apt-get update
  3. sudo apt-get install -y \
  4.     fonts-wqy-microhei \
  5.     fonts-wqy-zenhei \
  6.     fonts-noto-cjk \
  7.     ttf-mscorefonts-installer \
  8.     fontconfig
  9. # 刷新字体缓存
  10. sudo fc-cache -fv
  11. # 验证中文字体安装
  12. fc-list :lang=zh
复制代码
3、直接通过wkhtmltopdf查抄是否可以正常使用

wkhtmltopdf是可以直接调用的

假如输出的pdf是正常的,那么在代码里调用也是正常的
接下来就可以正常使用了:
  1. HtmlToPDFCore.HtmlToPDF htmlToPDF   = new HtmlToPDFCore.HtmlToPDF();
  2. var html ="<html><body>123中文</body></html>";
  3. return File(htmlToPDF.ReturnPDF(html), "application/pdf", $"{id}_{DateTime.Now:yyyyMMddHHmmss}.pdf");
复制代码
HtmlToPDFCore项目地址:https://github.com/carloscds/HtmlToPDFCore
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表