背景:
项目使用的是 .Net 6 + Docker,需要将数据生成 PDF 保存到 第三方文件存储服务器上。
引用 NuGet: Haukcode.WkHtmlToPdfDotNet
这个插件还是满好用的,支持Windows、Docker. 可以直接通过 Url 转PDF,也可以通过 Html 字符,生成 PDF.
官方地址: 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
这样处理下,中文变方块的问题就解决了。
标签:Haukcode,WkHtmlToPdfDotNet,字体,PDF,Net6,Docker,ttf From: https://www.cnblogs.com/yuanyang/p/17615062.html