使用 GroupDocs.Comparison API 掌握 Java 中的文档比较

介绍

厌倦了手动比较文档?无论是识别页眉、页脚还是内容的变更,文档比较都可能是一项艰巨的任务。GroupDocs.Comparison for Java 库可以自动化并增强此过程,精准而便捷。

本教程将指导您如何利用 Java 中的 GroupDocs.Comparison 自定义文档比较样式、调整敏感度设置、忽略页眉/页脚比较、设置输出纸张尺寸等。完成本教程后,您将能够高效地简化工作流程。

您将学到什么:

  • 在文档比较期间忽略页眉和页脚。
  • 通过样式调整来定制更改。
  • 调整比较敏感度以进行详细分析。
  • 在 Java 应用程序中设置输出纸张尺寸。
  • 在现实场景中实现这些功能。

在深入实际操作之前,请确保您已具备必要的先决条件。

先决条件

要开始使用 GroupDocs.Comparison for Java,请确保您具备以下条件:

  1. Java 开发工具包 (JDK): 确保你的机器上安装了 JDK。JDK 8 及以上版本即可。
  2. Maven: 本教程假设您使用 Maven 来管理项目依赖项。
  3. GroupDocs.Comparison 库:
    • 将以下依赖项添加到您的 pom.xml
<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/comparison/java/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>25.2</version>
    </dependency>
</dependencies>
  1. 执照: 从 GroupDocs 获取免费试用版、临时许可证或购买完整版。

完成这些设置后,您就可以开始在 Java 应用程序中实现文档比较功能了。

为 Java 设置 GroupDocs.Comparison

确保我们的环境配置正确:

通过 Maven 安装

将上述 XML 代码片段添加到你的项目 pom.xml。此步骤确保 Maven 识别必要的存储库和依赖项。

许可证获取

根据 GroupDocs 文档获取并设置许可证文件后,按如下方式初始化 GroupDocs.Comparison:

// 基本初始化示例
com.groupdocs.comparison.License license = new com.groupdocs.comparison.License();
license.setLicense("path/to/your/license/file.lic");

实施指南

功能 1:忽略页眉/页脚比较

概述: 页眉和页脚通常包含页码或文档标题等信息,这些信息可能与内容变化比较无关。

设置选项

import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import java.io.FileOutputStream;

public class IgnoreHeaderFooterExample {
    public static void main(String[] args) throws Exception {
        String outputFileName = "YOUR_OUTPUT_DIRECTORY/IgnoreHeaderFooter_result.docx";

        try (OutputStream resultStream = new FileOutputStream(outputFileName);
             Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_with_footer.docx")) {

            comparer.add("YOUR_DOCUMENT_DIRECTORY/target_with_footer.docx");

            // 设置比较选项以忽略页眉和页脚
            CompareOptions compareOptions = new CompareOptions.Builder()
                    .setHeaderFootersComparison(false)
                    .build();

            final Path resultPath = comparer.compare(resultStream, new SaveOptions(), compareOptions);
        }
    }
}

解释

  • CompareOptions.Builder().setHeaderFootersComparison(false):此设置指示库跳过页眉和页脚比较。
  • try-with-resources 确保所有流在使用后都正确关闭。

功能2:设置输出纸张尺寸

概述: 自定义输出纸张尺寸对于创建易于打印的文档至关重要。以下是如何在文档比较过程中进行调整。

实施步骤

import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import com.groupdocs.comparison.options.enums.PaperSize;

public class SetOutputPaperSizeExample {
    public static void main(String[] args) throws Exception {
        String outputFileName = "YOUR_OUTPUT_DIRECTORY/SetOutputPaperSize_result.docx";

        try (OutputStream resultStream = new FileOutputStream(outputFileName);
             Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_word.docx")) {

            comparer.add("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");

            // 将纸张尺寸设置为A6
            CompareOptions compareOptions = new CompareOptions.Builder()
                    .setPaperSize(PaperSize.A6)
                    .build();

            final Path resultPath = comparer.compare(resultStream, compareOptions);
        }
    }
}

解释

  • CompareOptions.Builder().setPaperSize(PaperSize.A6):将输出纸张尺寸设置为 A6。

功能 3:调整比较敏感度

概述: 微调比较敏感度有助于识别哪怕是细微的变化。调整方法如下:

import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;

public class AdjustComparisonSensitivityExample {
    public static void main(String[] args) throws Exception {
        String outputFileName = "YOUR_OUTPUT_DIRECTORY/AdjustComparisonSensitivity_result.docx";

        try (OutputStream resultStream = new FileOutputStream(outputFileName);
             Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_word.docx")) {

            comparer.add("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");

            // 将灵敏度设置为 100
            CompareOptions compareOptions = new CompareOptions.Builder()
                    .setSensitivityOfComparison(100)
                    .build();

            final Path resultPath = comparer.compare(resultStream, compareOptions);
        }
    }
}

解释

  • CompareOptions.Builder().setSensitivityOfComparison(100):调整检测变化的灵敏度级别。

功能 4:自定义变更样式(使用 Streams)

概述: 区分插入、删除和更改的文本,使比较更加直观。以下是使用流自定义样式的方法:

import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import com.groupdocs.comparison.options.save.SaveOptions;
import com.groupdocs.comparison.options.style.StyleSettings;

import java.awt.Color;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class CustomizeChangesStylesStreamExample {
    public static void main(String[] args) throws Exception {
        String outputFileName = "YOUR_OUTPUT_DIRECTORY/CustomizeChangesStylesStream_result.docx";

        try (InputStream sourceFile = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/source_word.docx");
             InputStream targetFile = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
             OutputStream resultStream = new FileOutputStream(outputFileName);
             Comparer comparer = new Comparer(sourceFile)) {

            comparer.add(targetFile);

            // 自定义更改样式
            StyleSettings insertedStyle = new StyleSettings();
            insertedStyle.setHighlightColor(Color.GREEN); // 绿色表示插入
            StyleSettings deletedStyle = new StyleSettings();
            deletedStyle.setHighlightColor(Color.RED); // 红色表示删除
            StyleSettings changedStyle = new StyleSettings();
            changedStyle.setHighlightColor(Color.BLUE); // 蓝色表示更改

            CompareOptions compareOptions = new CompareOptions.Builder()
                    .setInsertedItemStyle(insertedStyle)
                    .setDeletedItemStyle(deletedStyle)
                    .setChangedItemStyle(changedStyle)
                    .build();

            final Path resultPath = comparer.compare(resultStream, compareOptions);
        }
    }
}

解释

  • 自定义样式设置: 使用 StyleSettings 定义插入(绿色)、删除(红色)和更改(蓝色)的突出显示颜色。
  • CompareOptions.Builder() 在比较过程中应用这些样式。

结论

利用 GroupDocs.Comparison for Java,您可以精确地自动执行文档比较。本教程介绍了如何忽略页眉/页脚、设置输出纸张大小、调整灵敏度以及自定义更改样式。实现这些功能将简化您的工作流程并增强 Java 应用程序中的文档分析功能。

常见问题解答

1. 在 GroupDocs for Java 中比较时可以忽略页眉和页脚吗?

是的,使用 setHeaderFootersComparison(false)CompareOptions 从比较中排除页眉和页脚。

2. 如何使用 GroupDocs 在 Java 中设置输出纸张大小?

申请 setPaperSize(PaperSize.A6) 或其他尺寸 CompareOptions 自定义最终文档的纸张尺寸。

3. 是否可以微调比较敏感度?

是的,使用 setSensitivityOfComparison()CompareOptions 调整灵敏度,相应地检测微小或重大变化。

4. 我可以在比较过程中设置插入、删除和更改文本的样式吗?

当然,可以通过以下方式定制样式 StyleSettings 针对不同的变更类型并应用它们 CompareOptions

5. 使用 Java 中的 GroupDocs 比较的先决条件是什么?

安装 JDK,使用 Maven 管理依赖项,获取许可证,并将 GroupDocs.Comparison 库添加到您的项目中。