我们很高兴宣布 GroupDocs.Comparison for .NET v26.10 已于 2026年10月 发布。此版本引入了基于 OCR 的图像比较——通过识别的文本而非像素数据来比较图像——以及针对电子表格比较的重大修复和增强,包括性能提升以及对行高、数值单元格类型和已删除行的正确处理。其他改进还涵盖了 PDF、Word、TXT 和 HTML 的比较结果。

本次发布的新功能

  • COMPARISONNET-4844 | 功能 | 通过识别文本(OCR)比较图像
  • COMPARISONNET-4944 | 功能 | 在电子表格比较的 StyleSettings 中支持 HighlightColor
  • COMPARISONNET-4945 | 🔧 修复 | 修复 XLSX 比较即使文件相同也需要数分钟的问题
  • COMPARISONNET-4940 | 🔧 修复 | 修复在 XLSX 比较中,一行被删除后导致后续所有行都被标记为已更改的问题
  • COMPARISONNET-4946 | 🔧 修复 | 在 XLSX 结果中保留自动行高,而不是强制固定 15 pt 高度
  • COMPARISONNET-4947 | 🔧 修复 | 在电子表格比较结果中保留数值单元格类型
  • COMPARISONNET-4943 | 增强 | 避免在 Excel 比较中完全替换短文本字符串
  • COMPARISONNET-4931 | 增强 | 在 PDF 比较中将被替换的文本显示为先删除后插入
  • COMPARISONNET-4927 | 增强 | 在 TXT 比较输出中规范已删除和已插入组件的顺序
  • COMPARISONNET-4935 | 增强 | 从 HTML 预览生成中移除临时路径的使用
  • COMPARISONNET-4936 | 🔧 修复 | 修复在渲染 HTML 文件时 PreviewOptions 中的 PageNumbers 属性被忽略的问题
  • COMPARISONNET-4926 | 🔧 修复 | 修复比较包含表格的 Word 文档时导致的文档比较崩溃
  • COMPARISONNET-4923 | 🔧 修复 | 修复文本比较的 HTML 结果中丢失换行的问题
  • COMPARISONNET-4917 | 增强 | 一系列内部改进

公共 API 更改

在 GroupDocs.Comparison.Options 命名空间中新增了 OcrOptions 类,并通过新的 CompareOptions.Ocr 属性对外暴露。

成员 类型 描述
Enabled bool true 表示比较识别的文本;false 表示按像素比较图像。默认值为 false。
DisplayMode OcrDisplayMode 比较结果的布局方式。默认值为 OcrDisplayMode.SideBySide。
Language OcrLanguage 文档所使用的语言或文字。默认值为 OcrLanguage.Latin。
DisableResourceDownloads bool true 表示在所需识别模型本地不可用时失败;false 表示下载模型。默认值为 false。
ResourcesPath string 包含识别模型的文件夹,或 null 使用默认位置。

新的 OcrDisplayMode 枚举控制比较识别文本的结果布局方式:

值 描述
SideBySide 默认模式。生成一张图像,显示源文件和目标文件并排,并在差异处标记,保留两者的原始布局。
Text 生成一张图像,显示两个文档的识别文本为纯文本,并突出显示已删除和已插入的词。原始文档的布局——字体、表格、列和图像——不会被再现。

新功能

通过识别文本(OCR)比较图像

GroupDocs.Comparison 现在可以通过 图像中识别的文本 来比较图像,而不是通过像素比较。以前,比较两张图像意味着逐像素比较——扫描图像稍有偏移、以不同质量重新保存或使用不同扫描仪生成的图像会在各处报告差异。启用 OCR 比较后,首先对两张图像进行文本识别,然后将识别的文本进行比较,从而在结果中显示实际的文字变化。

这使得能够以有意义的方式比较扫描的合同、截图、拍摄的文档以及其他仅包含图像的文件。

注意: OCR 比较在 .NET Framework 上不可用。

在电子表格比较的 StyleSettings 中支持 HighlightColor

StyleSettings 的 HighlightColor 属性现在在比较电子表格时会生效,因而用于标记已更改单元格的背景颜色可以像其他格式一样进行自定义。

代码示例

要启用基于 OCR 的并排布局比较:

using (Comparer comparer = new Comparer("source.png"))
{
    var options = new CompareOptions
    {
        Ocr = new OcrOptions
        {
            Enabled = true,
            DisplayMode = OcrDisplayMode.SideBySide
        },
        GenerateSummaryPage = false
    };

    comparer.Add("target.png");
    var result = comparer.Compare("result.png", options);
}

获取纯文本结果并使用本地文件夹中的西里尔语语言模型:

using (Comparer comparer = new Comparer("source.png"))
{
    var options = new CompareOptions
    {
        Ocr = new OcrOptions
        {
            Enabled = true,
            DisplayMode = OcrDisplayMode.Text,
            Language = OcrLanguage.Cyrillic,
            ResourcesPath = @"C:\ocr-models",
            DisableResourceDownloads = true
        },
        GenerateSummaryPage = false
    };

    comparer.Add("target.png");
    comparer.Compare("result.png", options);
}

在电子表格比较中自定义高亮颜色:

using (Comparer comparer = new Comparer("source.xlsx"))
{
    comparer.Add("target.xlsx");

    var options = new CompareOptions
    {
        InsertedItemStyle = new StyleSettings { HighlightColor = Color.LightGreen },
        DeletedItemStyle  = new StyleSettings { HighlightColor = Color.LightPink }
    };

    comparer.Compare("result.xlsx", options);
}

如何获取更新

NuGet

通过 NuGet 升级到最新的 GroupDocs.Comparison 包:
GroupDocs.Comparison 26.10.0

通过 .NET CLI 安装:

dotnet add package GroupDocs.Comparison --version 26.10.0

直接下载

从 GroupDocs.Comparison for .NET 26.10 Release Notes 页面下载程序集。

资源