【已解决】aspose工具word转pdf文件,在linux服务器上使用docker-jenkins部署出现内容乱码问题

一、背景介绍

因项目需求,需要将word格式文件转换pdf并添加水印,由于我在本地windos开发环境调试没有任何问题,一到测试环境linux发现乱码

例如:

 二、排查原因

由于项目是用docker+jenkins部署,经排查后发现原因是因为Linux跟windos中的字体不一样,windos中 c:\windos\user\Fonts 目录中自带很多字体。但linux docker容器中并没有映射或者挂载这些字符集导致pdf下载的时候乱码

三、解决方案

1.将windos中 c:\windos\user\Fonts 目录中的字体 复制到一个新的文件夹中,并上传到linux /usr/share/fonts 这个目录下

2.执行字体安装命令

sudo mkfontscale

sudo mkfontdir

sudo fc-cache -fv

3.执行命令让字体生效

source /etc/profile

4.如果安装失败,可以考虑修改字体权限(安装成功可忽略)

chmod 755 *.ttf

5.进入docker 容器映射挂载容器卷属性 -v /usr/share/fonts:/usr/share/fonts

6.最终重新部署jenkins 即可完成

以我个人为例。我进入部署的docker 容器中 然后查询容器下的字体集,发现果然没有且缺少很多

 四、总结

一开始在Linux中按照网上的相关资料排查很久,最后发现项目不是用jar包的形式部署,而是采用docker+jenkins的形式,花1个多小时踩了个巨坑,最后发现是docker容器中的挂载卷中的映射容器没并有字体。然后配置相关映射挂载才得以解决!所以在此分享一下踩坑心得

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在使用 AsposeWord 换为 PDF 时设置字体为 Linux 字体,您可以按照以下步骤进行操作: 1. 确保您已经安装了所需的 Linux 字体。可以从适合您需求的字体提供商或在线字体库获取所需字体文件。 2. 在代码中指定要使用的字体名称。例如,如果您希望使用 Linux 下的 Arial 字体,可以将字体名称设置为 "Arial"。 3. 使用 Aspose 提供的 API 来设置所需字体。以下是一个示例代码片段,演示如何在 Aspose.Words 中将字体设置为 Linux 字体并将 Word 文档换为 PDF: ```java // 加载 Word 文档 Document doc = new Document("input.docx"); // 创建 FontSettings 对象 FontSettings fontSettings = new FontSettings(); fontSettings.setFontsFolder("/path/to/linux/fonts/folder", true); // 设置 Linux 字体文件夹路径 fontSettings.DefaultFontName = "Arial"; // 设置要使用的字体名称 // 将 FontSettings 对象分配给文档 doc.FontSettings = fontSettings; // 保存为 PDF doc.Save("output.pdf", SaveFormat.Pdf); ``` 在上述示例中,通过创建一个 `FontSettings` 对象并使用 `setFontsFolder` 方法指定 Linux 字体文件夹的路径,然后将该对象分配给文档的 `FontSettings` 属性。同时,将 `DefaultFontName` 属性设置为所需的字体名称。 请注意,具体的 API 调用方式可能因您使用Aspose 产品和版本而有所不同。因此,请参考相关的 Aspose 文档或示例代码以获取更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值