Aspose-word25.1版本的文档比对功能怎么比对docx文件中字体样式改变

例如 源文件中文字颜色黑色,字体五号
修改后文件 文字字体颜色红色 ,字体一号,加粗

@yinke

要比较两个 DOCX 文件中的字体样式变化,例如源文件中的文字颜色为黑色、字体为五号,而修改后的文件中文字颜色为红色、字体为一号并加粗,您可以使用 Aspose.Words 的文档比较功能。以下是实现此功能的步骤:

  1. 加载文档:首先,您需要加载原始文档和修改后的文档。可以使用以下代码示例:

    // 加载原始文档
    Document docOriginal = new Document("original_document.docx");
    // 加载修改后的文档
    Document docModified = new Document("modified_document.docx");
    
  2. 比较文档:使用 Aspose.Words 提供的比较方法来比较这两个文档。以下是比较文档的代码示例:

    // 比较两个文档
    docOriginal.compare(docModified, "authorName", new Date());
    
  3. 查看差异:比较完成后,您可以查看原始文档中的修订内容,这些修订将显示出字体样式的变化。您可以通过以下代码保存比较结果:

    // 保存比较结果
    docOriginal.save("comparison_result.docx");
    
  4. 分析结果:打开生成的 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 你能提供你比较的文件和输出文件吗?我们将检查问题并为您提供更多信息。

修改后文件.docx (12.9 KB)

源文件.docx (12.8 KB)
aspose.pdf (105.0 KB)

@yinke 你能解释一下你的问题吗?正如我所看到的,输出文档与通过MS Word比较的文档相同。如果修改后的文档将具有不同的字体大小,它将显示在输出docx文档中。或者您需要在输出PDF文件中显示此评论信息?

这个比对结果中没有标注出字体样式的修改,Microsoft Office比对文件结果会有标注出字体样式的修改,以批注的形式展示

@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 是的,“Aspose.Words”将比较文档中的字体更改信息添加为MS Word。如果您比较文档并将其保存到DOCX文件,您将看到它。我会检查所提供的文件。

@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)