我在本地电脑上测试office文件转换为pdf,发现很多地方和微软的格式差异较大,有的地方是乱码,怀疑可能是和字体有关系,所以想问有什么办法可以摆脱对操作系统字体的影响,或者干脆安装全部的字体,或者直接在应用系统中自带字体,可以实现文件展示和微软格式一致。
@yangfanchuhai, Aspose.Words 用类似的字体替换缺失的字体。 通常在字体替换后,文档布局看起来会有所不同。 发生这种情况是因为不同字体的字符宽度和高度通常不同。
您可以运行以下代码来查看所有字体替换警告:
Document doc = new Document("in.docx");
HandleDocumentWarnings warningsHandler = new HandleDocumentWarnings();
doc.setWarningCallback(warningsHandler);
doc.save("out.pdf");
warningsHandler.printMissingFontDetails();
public static class HandleDocumentWarnings implements IWarningCallback {
public ArrayList listOfFonts = new ArrayList();
public void warning(WarningInfo info) {
if (info.getWarningType() == WarningType.FONT_SUBSTITUTION) {
if (!listOfFonts.contains(info.getDescription()))
listOfFonts.add(info.getDescription());
}
}
public void printMissingFontDetails() {
for (int i = 0; i < listOfFonts.size(); i++)
System.out.println(listOfFonts.get(i).toString());
}
}
另外,您可以从其他计算机复制缺少的字体,并使 Aspose.Words 使用这些字体。 请阅读我们的文档如何指定字体位置: