Aspose.words for Java 目录页码错误

渲染填充模板以后,更新目录,目录页码和实际页码不符
目录:

实际:

文档:
New_境外资金月度分析简报2024-06-03.docx (2.0 MB)

调用方式:
// Load the Word document
Document doc = new Document(“New_境外资金月度分析简报2024-06-03.docx”);
doc.updateFields();
doc.updatePageLayout();
doc.save(“New_2境外资金月度分析简报.docx”);

@JOOL 我在使用 24.5 版本的 Aspose.Words 时没有遇到任何问题。


另外,请检查文档中使用的所有字体是否可用。

我试用的也是24.5版本,更新此文档目录时,的确会有这个问题。是字体的问题吗

我还是会有一样的问题。
image.png (90.0 KB)

image.png (479.6 KB)

image.png (70.6 KB)

此问题的原因可能和表格自动换行有关吗

测试了一下,Windows系统运行代码使用Microsoft Word页码和目录是对应的。
但是MacOS系统,使用WPS不行。

@JOOL 当我重置字体设置时,在 Windows 和 MacOS 上都能重现这个问题。因此,您的电脑存在字体问题。请使用以下代码查找遗漏的字体:

public void fonts() throws Exception {
    LoadOptions loadOptions = new LoadOptions();
    loadOptions.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);
    Document doc = new Document("input.docx", loadOptions);

    FontSubstitutionWarningCollector callback = new FontSubstitutionWarningCollector();
    doc.setWarningCallback(callback);

    doc.updateFields();
    doc.updatePageLayout();

    doc.save("output.docx");
}

private static class FontSubstitutionWarningCollector implements IWarningCallback {
    ///
    /// Called every time a warning occurs during loading/saving.
    ///
    public void warning(WarningInfo info) {
        if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
            System.out.println(info.getDescription());
    }
}

具体的错误原因是怎样的呢,是因为系统缺少这些字体吗

@JOOL 根据我的分析,我认为是字体问题,因为只有在没有字体的情况下才能重现这个问题。

好的,非常感谢,我在MacOS中安装了缺失字体,问题已经解决了。

1 Like