origin_img_v2_0fa4146c-29f8-4007-845a-027f473997dg.jpg (133.2 KB)
测试文件如下:
测试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修订.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文档的编辑语言吗
也就是说编辑语言是编辑器的一个设置是吗,和文档本身无关?
在Microsoft Word for Mac上我没发现首选编辑语言的设置,是只有Microsoft Word for Windows上才有此设置吗?
@PENGX123, 是的,编辑语言是编辑器的设置。
我无法在 Microsoft Word for Mac 中找到此设置。 Microsoft Word for Mac 似乎与 Microsoft Word for Windows 不同,Microsoft for Mac 没有此设置。