当前位置: 首页 > article >正文

C# Wkhtmltopdf HTML转PDF碰到的问题

最近碰到一个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是可以直接调用的


如果输出的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项目地址:GitHub - carloscds/HtmlToPDFCore: Convert HTML to PDF

http://www.lryc.cn/news/2403654.html

相关文章:

  • Vue3 (数组push数据报错) 解决Cannot read property ‘push‘ of null报错问题
  • Lifecycle 核心原理面试回答
  • PHP:Web 开发的强大基石与未来展望
  • html文字红色粗体,闪烁渐变动画效果,中英文切换版本
  • 六、【ESP32开发全栈指南:深入解析ESP32 IDF中的WiFi AP模式开发】
  • 基于Django开发的运动商城系统项目
  • Python训练营打卡Day42
  • https相比http的区别
  • 【Linux】为 Git 设置 Commit 提交模板方法,可统一个人或者项目的提交风格
  • caliper config.yaml 文件配置,解释了每个配置项的作用和注意事项
  • 结构体和指针1
  • Python60日基础学习打卡Day45
  • 《Java 并发神器:深入理解CompletableFuture.supplyAsync与线程池实战优化》
  • 【Visual Studio 2022】卸载安装,ASP.NET
  • JVM中的各类引用
  • thinkphp-queue队列随笔
  • STM32标准库-TIM输出比较
  • 科技创新驱动人工智能,计算中心建设加速产业腾飞​
  • figma 和蓝湖 有什么区别
  • SQLServer中的存储过程与事务
  • STM32H562----------ADC外设详解
  • uniapp 安卓 APP 后台持续运行(保活)的尝试办法
  • AI大数据模型如何与thingsboard物联网结合
  • 【SSM】SpringBoot笔记2:整合Junit、MyBatis
  • STM32——CAN总线
  • 嵌入式面试高频!!!C语言(四)(嵌入式八股文,嵌入式面经)
  • 数据治理在制造业的实践案例
  • 【强化学习】——03 Model-Free RL之基于价值的强化学习
  • Edge(Bing)自动领积分脚本部署——基于python和Selenium(附源码)
  • html表格转换为markdown