Docker(.Net6) 环境下使用 Haukcode.WkHtmlToPdfDotNet

发布时间 2023-08-08 18:02:48作者: 菜鸟也是bird

 

背景:

 项目使用的是 .Net 6 + Docker,需要将数据生成 PDF 保存到 第三方文件存储服务器上。

引用 NuGet: Haukcode.WkHtmlToPdfDotNet

官方地址: https://github.com/HakanL/WkHtmlToPdf-DotNet

 

由于官方只有 debian 版本的说明,所以项目端也使用了 debian 系统。

按照官方的说明文档进行开发,一切都很顺利。在最后一步,突然发现生成的 PDF 如果涉及到中文,就会变成 □□□□□。

经过查阅资料,基本都是字体原因。具体做法可以参考如下:

1:从 windows 电脑上找到相应的字体(C:\Windows\Fonts),这里需要注意,要使用 ttf 类型的字体,ttc 可能会不起作用(Linux 不识别),ttc类型的字体可以通过在线工具,分解成数个 ttf 类型的字体。

 

2:将字体文件拷贝到项目里,我这这里选择了等线体,也可以选择宋体

 

3:在 Dockerfile 通过 mv命令,将字体复制到对应的文件夹

 

RUN mkdir /usr/share/fonts/truetype/deng/
RUN mv /app/Deng.ttf /usr/share/fonts/truetype/deng
RUN fc-cache -vf

 这样处理下,中文变方块的问题就解决了。