Aspose.word 加载 docx 文档并保存后表格宽度不对

原始表格截图:


原始文件:
source.docx (23.7 KB)

保存后截图:


保存后的文件:
result.docx (23.5 KB)

代码中未操作文档,只作加载并保存:

Document source = new Document("E:\\Desktop\\source.docx");
source.save("E:\\Desktop\\result.docx", SaveFormat.DOCX);

@xsirl

您遇到的问题——使用 Aspose.Words for Java 加载并保存 DOCX 文档后表格宽度发生变化——在类似场景中已有报告,尤其是在处理由第三方编辑器(如 JS 编辑器)生成的 DOCX 文件时,尽管这些文件在 Microsoft Word 中显示正常,但 Aspose.Words 在解析或保存时可能出现表格布局维护不一致的情况 。

Aspose.Words 内部已为此类问题创建了工单,例如 WORDSNET-28616WORDSNET-28563,表明产品在更新表格布局计算逻辑方面存在已知行为差异,特别是在文档结构非标准生成的情况下 。虽然部分相关问题(如 WORDSNET-16558)已在 Aspose.Words for .NET 23.10 版本中修复 ,但 Java 版本的同步情况尚不明确,且某些边缘情况可能仍未覆盖。

尽管 Aspose 提供了 updateTableLayout() 方法用于手动触发表格布局重算,但该方法已被标记为已弃用,官方建议谨慎使用,因为当前版本已采用内部自动机制处理布局计算,正常情况下无需手动干预 。

建议您:

  • 检查是否使用的是 Aspose.Words for Java 的最新版本,若非最新,请升级后重试。
  • 若问题持续存在,可尝试在保存前调用 document.updateTableLayout() 查看是否有所改善(注意该方法已弃用,仅作临时验证用途)。
  • 提供原始文档样本(source.docx),以便进一步分析是否存在非标准结构或生成来源问题 。

该问题可能与文档加载时的表格布局解析逻辑有关,建议补充文档样本以支持进一步排查。

使用的是aspose-words-21.8,请问在不升级版本的情况下有什么解决方案

@xsirl

用户报告在使用 Aspose.Words for Java 21.8 加载并保存 DOCX 文档后表格宽度发生变化,提供了代码片段和版本信息,属于代码行为问题的调试与解决方案咨询。

@xsirl 请您将有问题的输入输出文件附在这里,以便我们参考。我们会检查问题并提供更多信息。很遗憾,仅凭截图无法分析问题。

感谢您的回复,我已经上传了相关的输入输出文件

@xsirl 感谢您提供的更多信息。我这边使用最新的 Aspose.Words 25.12 版本无法重现此问题。我看到您使用的是较旧的 Aspose.Words 21.8 版本。因此,请您尝试使用最新的 25.12 版本,并告知我们问题是否仍然存在。