使用aspose打开word文件并保存后,段后加了8磅,行距也变成了多倍行距且值为1.08,使用的版本是:22.4

origin_img_v2_0fa4146c-29f8-4007-845a-027f473997dg.jpg (133.2 KB)

@PENGX123, 能否附上原Word文档和“Aspose”保存的Word文档? 您的屏幕截图上显示的是什么程序? 它看起来不像“Microsoft Word”。

测试文件如下:
测试aspose的bug修订.docx (14.2 KB)
使用的版本如下:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>22.4</version>
<classifier>jdk17</classifier>
</dependency>
具体问题:
使用aspose打开文件,直接保存,保存后的文件的段落有问题,第一页末尾的内容挤到第二页了。

@PENGX123, 从您的屏幕截图中,我想您使用 Microsoft Word for Mac。

我尝试在Mac和Windows上的 Microsoft Word 中打开Word文档。 请参阅下面附带的屏幕快照。 您可能会看到,在Windows Microsoft Word 显示 测试aspose的bug修订.docx 和 测试aspose的bug修订.AW.22.4.docx 上以相同的方式。 但是,在Mac上,Microsoft Word 以不同的方式显示这些文档。

我认为这是 Microsoft Word for Mac 中的错误。
Aspose.Words 在Windows上使用 Microsoft Word 作为参考。

测试aspose的bug修订.MacOS.Word2019.jpg (182.3 KB) 测试aspose的bug修订.AW.22.4.MacOS.Word2019.jpg (182.6 KB) 测试aspose的bug修订.Windows10.Word2019.jpg (187.7 KB) 测试aspose的bug修订.AW.22.4.Windows10.Word2019.jpg (193.7 KB)

测试aspose的bug修订.AW.22.4.docx (13.0 KB)
测试aspose的bug修订.docx (14.2 KB)

原文档是我们客户的文件不能提供 我屏幕上显示的是Mac版本的word

我在mac上用wps打开好像也是一样的 初始化文件段后0 单倍行距,然后使用aspose打开并保存后就变成了段后8磅 多倍间距。
请问这有解决方案吗?
我看到一篇博客https://blog.csdn.net/weixin_40548105/article/details/107717119 按照博客上说的使用pf.clearFormatting();之后 确实不会出现8磅和多倍行距的问题,但是我不敢直接使用,怕会引发其他问题从而给客户带来麻烦。

我刚刚用同事电脑(windows)试了下 发现并不是mac的问题呀。
原文件:测试aspose的bug修订.docx (14.2 KB)
使用aspose打开并保存后的文件:测试使用aspose保存.docx (13.0 KB)

以下简称:原文件为文件A,经过aspose打开并保存的文件为文件B。

如下是使用WPS打开文件A显示的段落样式:
原文件的段落样式_WPS.jpg (110.7 KB)
如下是使用WPS打开文件B显示的段落样式:
经过aspose打开并保存后的段落样式_WPS.jpg (108.1 KB)

如下是使用word打开原件A:
原文件_word.jpg (57.1 KB)

如下是使用word打开文件B:(可以看到经过aspose打开并保存后,文件内容下移了。因同事电脑上的word未激活看不了段落样式,只能预览文件,所以没截图段落样式,不过从预览结果推测应该也是段间距改变了导致内容下移)
经过aspose打开并保存后的文件_word.jpg (66.0 KB)

同事的电脑是thinkpad笔记本,系统是windows10,
word版本如下:
origin_img_v2_90efca54-9c53-44ea-a36d-2f22f6e1fd9g.jpg (46.1 KB)

wps版本如下:
origin_img_v2_560acd48-55ba-46a7-8042-d66c9d32d1dg.jpg (157.5 KB)

@PENGX123, 默认编辑语言是导致 Word 不同行为的原因。 下面的屏幕截图显示,根据默认编辑语言, Word 可以以不同的方式显示同一文档:

您可以在以下代码中实现 Aspose.Words 中所需的行为:

LoadOptions lo = new LoadOptions();
lo.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);

Document doc = new Document("测试aspose的bug修订.docx", lo);
doc.save("测试aspose的bug修订.Aspose.Words.docx");

但是word用的是中文版的呀,wps用的是国际版的

请教下为啥默认编辑语言设置成中文语言就没问题了呢?如果我直接将默认编辑语言设置成中文,那针对其他语言的文档是否会出现问题呢?

我如何知道我应该设置什么语言作为默认编辑语言呢?

@PENGX123, 为了清楚起见,Aspose.Words 使用 Microsoft Word for Windows 作为参考,并尝试尽可能接近地复制其行为。 Microsoft Word for Mac 和 WPS 的行为可能与 Microsoft Word for Windows 的行为不同,预计 Aspose.Words 的行为可能与 Microsoft Word for Mac 和 WPS 的行为不同。

我认为没有中文版的 Microsoft Word for Windows 但是,您可以更改 Microsoft Word 的 UI,菜单和对话框中的英文可以替换为中文或其他语言。这可以通过更改 Office display language(下面屏幕截图中的红色)来完成:

您还可以将编辑语言添加到 Word(上面屏幕截图中的绿色)。其他编辑语言可以改变 Word 的行为。下图显示了在将中文添加到编辑语言列表时,Word 添加了附加功能。这些功能也可能会改变 Word 呈现带有中文文本的文档的方式。

其他语言也会改变 Word 的行为并启用其他功能。例如,根据是否将阿拉伯语添加到编辑语言列表中,Word 以不同的方式呈现带有阿拉伯语文本的文档。

在 Word 中更改首选语言也会更改一些默认值。在您的情况下,当将中文设置为首选语言时,Word 对段落使用不同的默认属性。这些默认属性可能会影响文档的布局。

当您将默认编辑语言设置为中文时,Aspose.Words 也使用与 Microsoft Word 相同的中文默认值。

请问我该如何知道我是否要将默认编辑语言设为中文呢?如何判断呢?可能存在其他情况需要将默认编辑语言设为英文或其他语言吗。

@PENGX123, 正如我在上面写的那样,Microsoft Word可以改变其行为并根据首选编辑语言产生不同的文档。 您必须决定自己适合自己的东西。

由于您很可能会在中文安装为首选编辑语言时将 Aspose.Words 的输出与 Microsoft Word 进行比较,然后始终将 Aspose.Words 中的默认编辑语言设置为中文。

请问我可以获取一个word文档的编辑语言吗

@PENGX123, 不,编辑语言未存储在文档中。

也就是说编辑语言是编辑器的一个设置是吗,和文档本身无关?

在Microsoft Word for Mac上我没发现首选编辑语言的设置,是只有Microsoft Word for Windows上才有此设置吗?

@PENGX123, 是的,编辑语言是编辑器的设置。

我无法在 Microsoft Word for Mac 中找到此设置。 Microsoft Word for Mac 似乎与 Microsoft Word for Windows 不同,Microsoft for Mac 没有此设置。