PDF转换SVG后发现SVG里面有部分字体不显示

paper2.pdf (457.1 KB)
拿这个PDF作为举例,生成的SVG文件里面就缺少了大量的中文字体,还有很多的发票PDF也无法成功转换,应该不是机器上缺少相应字体,因为用其他的SDK可以转换成功。并且我还想问问,有什么选项可以控制在SVG中生成的图像质量。目前生成的图像太大了
Screenshot2023_03_13_184411.jpg (234.1 KB)

@Adger_Li

我们一定会详细检查这个案例。你能分享一下你使用的是哪个API吗? .NET 还是 Java?你能分享示例代码片段吗?

好的谢谢,我使用的是Java API
代码:
Document nodes = new Document(“xxxxxxx.pdf”);
SvgSaveOptions svgSaveOptions = new SvgSaveOptions();
nodes.save(“xxxxxxxx.svg”, svgSaveOptions);

@asad.ali 我在更多的PDF文件里发现字体没办法转换的问题(不仅仅是中文,还包括一些英文和数字),是我哪里操作错误吗

@Adger_Li

与大输出大小相关的问题已在我们的问题跟踪系统中记录为 PDFJAVA-42414,目前正处于调查阶段。我们已将工单与此论坛主题相关联,工单解决后会立即通知您。

关于缺少字体的问题,请注意 Aspose.PDF 要求系统中存在所有字体才能按预期执行。因此,请尝试在系统中安装所有 Windows 和其他所需的字体,然后再试一次。我们已经在我们的环境中测试了该场景,但无法重现该问题,因为所有字体都存在。

请列出不需要字体的其他工具并成功进行转换。我们也会对这种行为展开调查,并与您分享我们的反馈。

@asad.ali 我觉得我的系统里是有相关字体的,因为其他的SDK如果不存在相关的字体,应该也是无法打印。我使用的是aspose-total 23.2 javaSDK 去转换,有什么办法知道Apose在转换我的PDF时候缺少什么字体吗?(虽然我还是觉得我的电脑里有相关字体)

@Adger_Li

请检查系统中所有字体的位置,并使用以下代码为 API 设置字体目录,然后重试转换:

FontRepository.getSources().clear();
ArrayList<String> localFontPaths = new ArrayList<String>();
localFontPaths.add(dataDir + "customfonts\\");
FontRepository.setLocalFontPaths(localFontPaths);
FontRepository.reloadFonts();

@asad.ali
好的我明白了,我发现其他SDK转换出来的字体和原本PDF上的有区别,估计他们用了其他的作为代替。然后我用了你之前提供的方法“FontRepository.setLocalFontPaths(localFontPaths);” 后,就这个PDF就可以成功转换了。
那我想问下如果不用setLocalFontPaths方法,我有什么办法知道缺少的字体是什么吗(即在Aspose看来,它需要什么字体才能按照正常流程完成转换),这样我才方便去安装新的所需字体

@Adger_Li

另一张票证 PDFJAVA-42581 已记录在我们的问题跟踪系统中以解决您的问题。问题单解决后,我们会通知您。请给我们一些时间。

对此造成的不便,我们表示歉意。