我想諮詢一下關於Excel轉換成pdf文件時,字型會變成亂碼問題。
這邊想請教一下是否有solution可以解決轉換不支援的字型?
下面是我轉換前跟轉換後的文件,轉換前的字型為Helvetica Neue,經過轉換後英文能順利辨識,
但中文都變成亂碼。
轉換的文件:
JIRA問題統整_20220104 (1).xlsx.zip (47.0 KB)
轉換後的文件:
Converted_PDF.pdf (91.6 KB)
@PeterZhang,
通过使用最新版本Aspose.Cells 23.7进行测试,我们能够得到正确的结果。请查看附件 (306.2 KB)。
。你的测试结果文件出现乱码,是因为你的机器没有安装文件里使用到的字体"Helvetica Neue"。
你可以使用以下两种方案中的一种去解决乱码问题。
一、安装样例文件中使用到的所有字体。
二、将文件中使用到的所有字体放到一个文件夹,然后调用 FontConfigs.SetFontFolder去设置自定义字体文件夹。设置后,在进行保存到PDF的操作时Aspose.Cells会去读取相关字体。你可以参考以下文档。
此外,如果工作簿中使用的基础字体在您的环境中不可用,那么您可以指定替代字体用于渲染目的。 当需要进行转换的机器上没有所需的字体时,此机制非常有用。 用户可以提供字体名称列表来替换原来想要的字体。 为了实现这一点,Aspose.Cells API 公开了接受 2 个参数的 FontConfigs.setFontSubstitutes 方法。 第一个参数是类型字符串,这应该是需要替换的字体的名称。 第二个参数是 string 类型的数组。 用户可以提供字体名称列表作为原始字体的替代品(在第一个参数中指定)。 请参阅文档以供参考。
https://docs.aspose.com/cells/zh/java/configuring-fonts-for-rendering-spreadsheets/#字体替换机制
请确保“Noto Sans CJK TC”字体存在/安装在您的字体目录中。 另外,您还应该在程序开始时在代码中设置自定义字体文件夹,请参阅文档和示例代码以供参考。
https://docs.aspose.com/cells/zh/java/configuring-fonts-for-rendering-spreadsheets/#设置自定义字体文件夹
字体文件夹必须可以无缝访问,您应该对该文件夹具有读/写权限。 如果您仍然发现问题,请分享您的输出 PDF,以便我们检查输出 PDF 中是否使用了替换字体。
由於我是平台Android平台開發者,在手機植入一個字定義字體資料夾的方式暫不考慮,所以目前不考慮讀取自定義字體文件夾的方式
請嘗試一開始就設置以下字體文件夾:
FontConfigs.setFontFolders(new String[]{"/system/fonts", "/system/font", "/data/fonts"}, true);
如果使用FontConfigs.setFontSubstitutes
替換字體,則替換的目標字體必須存在.