网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > .Net >

C# Wkhtmltopdf HTML转PDF碰到的问题

时间:2025-06-04 17:18

人气:

作者:admin

标签:

导读:最近碰到一个Html转PDF的需求,看了一下基本上都是需要依赖Wkhtmltopdf,需要在Windows或者linux安装这个可以后使用。找了一下选择了HtmlToPDFCore,这个库是对Wkhtmltopdf.NetCore简单二次封装,这...

最近碰到一个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执行权限
image

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是可以直接调用的
image
如果输出的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

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信