我在使用aspose,生成后缀为pdf的目录页码为117,实际页码也为117。但是保存为docx的时候,发现页码还是117.,但是实际页码就是77,我设置了下word的禁用标点符号压缩,但是不起作用,这是什么情况。
@liuguoqiang 不幸的是,我无法在我这边重现这个问题。 这是我用于测试的代码:
Document doc = new Document("C:\\Temp\\in.docx");
for (Field f : doc.getRange().getFields())
{
if (f.getType() == FieldType.FIELD_TOC)
{
FieldToc toc = (FieldToc)f;
toc.updatePageNumbers();
}
}
doc.save("C:\\Temp\\out.docx");
出现此问题的原因可能是原始文档中使用的字体在执行文档转换的环境中不可用。 要构建文档布局,Aspose.Words 需要文档中使用的字体。 如果 Aspose.Words 找不到文档中使用的字体,字体被替换。 这可能会导致字体不匹配和文档布局差异,并因此返回不正确的页码。 您可以实施 IWarningCallback 以在执行字体替换时获取通知。
我处理完成了字体问题,现在操作系统的字体已经能完全覆盖word需要的字体,且在IWarningCallback的warning接口不会有输出,但是现象还是目录里的页码要比实际页码多几页,还会有什么情况会导致的页码多
另外还有,这个文档布局是什么意思,需要重新调整word的布局吗
@liuguoqiang 您使用的是哪个版本的 Aspose.Words? 正如我所提到的,该问题在我这边无法重现,并且目录中的页码已正确更新。 请尝试使用最新版本,并告知我们问题是否仍然存在。 另外,如果可能的话,请附上您这边产生的有问题的输出。
版本号是:21.6.0,
之前的问题是目录上的页码会比实际的页码多,我调整完字体后,现象是目录上的页码比实际的页码少,我word文档中包括了大量表格,统计图。我怀疑是不是表格的原因导致。
已经解决,原因是word里表格的模版问题,调整了下部分表格模版,问题得到了解决