We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Aspose.pdf for .net 添加水印时,在Docker环境下出现中文乱码。

最近在使用Aspose.pdf(v22.2.0)添加水印时,在windows环境下正常,在Docker环境下出现中文乱码,应该是字体问题,我已经在容器中mscorefonts字体,同时也添加了中文字体,但是还是出现同样的问题。
pdf文件是先通过openxml审查word文档,然后通过Aspose转换成的pdf,转换成的pdf文件都没有出现pdf乱码,但添加的水印就有乱码。归档.zip (205.8 KB)

@silence_chen

您能否尝试使用 22.7 版本的 API 来测试场景?此外,您可以在初始化 Document 对象之前尝试使用下面的代码行指定字体路径。如果您仍然遇到任何问题,请分享您的示例 docker 文件以及您正在使用的示例代码片段。我们将进一步为您提供相应的帮助。

Aspose.Pdf.Text.FontRepository.Sources.Add(new FolderFontSource("<user's path to ms fonts>"));

是否可以不设置字体路径?因为我容器中已经安装必要的字体了。

我已经升级到22.7,但还是有问题。

奇怪的是,在相同环境下,都是用的Aspose.pdf,word转pdf中文是正常的,但加水印就确少字体。而且中文都是使用的SimSun字体。

WechatIMG42.png (2.9 KB)

@silence_chen

这些字体应放置在“/usr/share/fonts/truetype/msttcorefonts”目录中,因为 Aspose.PDF for .NET 会像操作系统一样在 Linux 上扫描此文件夹。如果操作系统有其他默认的字体文件夹/目录,您应该按照之前的建议在 API 中设置文件夹路径。

您是否使用 WatermarkArtifact 添加水印?请按照之前的要求分享代码片段和示例 docker 文件。另外,请尝试在 PDF 中添加文本戳记 以获取水印,以防万一。