例如 源文件中文字颜色黑色,字体五号
修改后文件 文字字体颜色红色 ,字体一号,加粗
要比较两个 DOCX 文件中的字体样式变化,例如源文件中的文字颜色为黑色、字体为五号,而修改后的文件中文字颜色为红色、字体为一号并加粗,您可以使用 Aspose.Words 的文档比较功能。以下是实现此功能的步骤:
-
加载文档:首先,您需要加载原始文档和修改后的文档。可以使用以下代码示例:
// 加载原始文档 Document docOriginal = new Document("original_document.docx"); // 加载修改后的文档 Document docModified = new Document("modified_document.docx");
-
比较文档:使用 Aspose.Words 提供的比较方法来比较这两个文档。以下是比较文档的代码示例:
// 比较两个文档 docOriginal.compare(docModified, "authorName", new Date());
-
查看差异:比较完成后,您可以查看原始文档中的修订内容,这些修订将显示出字体样式的变化。您可以通过以下代码保存比较结果:
// 保存比较结果 docOriginal.save("comparison_result.docx");
-
分析结果:打开生成的
comparison_result.docx
文件,您将能够看到原始文档与修改文档之间的所有差异,包括字体颜色和样式的变化。
通过以上步骤,您可以有效地比较文档中的字体样式变化,并查看所有的修改内容。有关更多详细信息和代码示例,请参考 Aspose.Words 的文档比较功能的相关文档。
Sources:
[1]: Comparing Documents for Differences | Aspose.Words Java Document …
[2]: Compare Documents | Aspose.Words Document Processing API
[3]: Compare Documents in Java|Aspose.Words for Java - Aspose Documentation
这样执行没有对比出字体样式的差异
@yinke 你能解释一下你的问题吗?正如我所看到的,输出文档与通过MS Word比较的文档相同。如果修改后的文档将具有不同的字体大小,它将显示在输出docx文档中。或者您需要在输出PDF文件中显示此评论信息?
@yinke 谢谢你的解释,我明白了。 我方无法使用您文档中使用的“宋体”字体。如果“Aspose.Words”找不到文档中使用的字体,则替换字体. 这可能会导致由于字体度量差异而导致的布局差异。您可以实现IWarningCallback在执行字体替换时收到通知。
以下文章可能对您有用:
Aspose-word25.1文件比对是否能比对出两个文件中字体样式的改变,并给出提示?
文件比对的页脚比对错误,原文件是5改成6,比对结果显示的是-1改成6
aspose.pdf (1.1 MB)
修改.docx (1.6 MB)
原文.docx (1.6 MB)
@yinke 这是因为默认情况下,字段值具有“页码-1”和字段值“-1”。您可以忽略用于比较文档的字段:
CompareOptions compareOptions = new CompareOptions();
compareOptions.setIgnoreFields(true);
doc1.compare(doc2, "Updated", new Date(), compareOptions);
这个需要比对页脚,这个问题能否修复?
能否给出对应比对代码,以及比对结果展示?
@yinke 我为此创建了一个新问题。 我们将对此进行分析。
我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:
Issue ID(s): WORDSNET-27857
如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务 。
@yinke 以下是字体更改后的 DOCX 输出文件
output.docx (12.6 KB)
我使用的代码是一个比较文档的简单代码:
Document doc1 = new Document("original.docx");
Document doc2 = new Document("modified.docx");
doc1.compare(doc2, "Updated", new Date());
doc1.save("output.docx");
这个比对生成的word后再调用接口转成pdf后,对应的批注标记没有,这个有什么设置让这些标记以批注的形式展示吗?用Microsoft Office转成pdf这些标记会展示
Document document = new Document(“output.docx”);
document.save(“output.pdf”, SaveFormat.PDF);
@yinke 您可以使用以下代码对其进行定制,使其与 PDF 一起使用:
document.getLayoutOptions().getRevisionOptions().setShowInBalloons(ShowInBalloons.FORMAT_AND_DELETE);
以下链接可能有用:
@yinke 将文档保存为PDF时,MS Word会根据MS Word设置中的默认编辑语言设置默认文档语言。如果特定运行节点语言与默认值不同,则通过逻辑结构/标记内容导出。
在"Aspose.Words"中,您可以通过以下方式设置默认编辑语言
LoadOptions LoadOptions=new LoadOptions();
loadOptions.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINES_PRC);
"Aspose.Words"还通过逻辑结构/标记内容用不同的语言标记运行节点。
此外,您可以在通过document.getStyles().getDefaultFont().setLocaleId(2052)
保存到PDF之前尝试设置默认区域设置;`([MS-OE376]: Part 4 Section 7.6.2.39, LCID (Locale ID) | Microsoft Learn).
使用您提供的代码后word的修订内容是显示中文,但是再用word转pdf,pdf文件中的修订内容是英文,这个要如何解决?
LoadOptions loadOptions=new LoadOptions();
loadOptions.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);
Document document = new Document(“比对0102.docx”,loadOptions);
document.getLayoutOptions().getRevisionOptions().setShowRevisionBars(false);
document.getLayoutOptions().getRevisionOptions().setShowInBalloons(ShowInBalloons.FORMAT_AND_DELETE);
document.save(“比对0102.pdf”, SaveFormat.PDF);
比对0102.docx (929.1 KB)
比对0102.pdf (1.1 MB)