我们很高兴宣布 GroupDocs.Comparison for .NET 26.5 已于 2026 年 5 月 正式发布。
GroupDocs.Comparison 版本 26.5 带来了 PDF 渲染精度的提升、CSV 与电子表格比较可读性的增强、用于修订处理和电子表格更改元数据的新 API 功能,以及支持多框架的更新版 NuGet 包模型。
修复和增强
- [Feature] 多框架 NuGet 包和 TFM 拆分包。 (COMPARISONNET-4770)
- [Enhancement] PDF 比较:在 Inline 模式下提升段落渲染精度。 (COMPARISONNET-4751)
- [Enhancement] 改进包含表格的 PDF 文档的比较结果。 (COMPARISONNET-4763)
- [Bug] 修复比较带样式表格的 PDF 时出现的 ArgumentOutOfRangeException。 (COMPARISONNET-4762)
- [Feature] 在 RevisionHandler 中支持可选释放传入的流。 (COMPARISONNET-4773)
- [Enhancement] 使用文本标记提升 CSV 比较结果的可读性。 (COMPARISONNET-4769)
- [Feature] 为 ChangeInfo 扩展电子表格属性。 (COMPARISONNET-4767)
- [Bug] Compare 方法在生成 HTML 输出时抛出异常。 (COMPARISONNET-4764)
主要功能
多框架 NuGet 包和 TFM 拆分包
GroupDocs.Comparison 已迁移至更先进的 NuGet 包交付模型。主包现在的目标框架为 net462;net6.0;net8.0;net10.0,取代了之前的 net462;netstandard2.1。
此外,为了减小下载体积,专用的按框架划分的 NuGet 包也会与主包一起发布。安装平台特定的包时,仅会下载与用户目标框架匹配的二进制文件——不会包含未使用的平台程序集。
| Package | Target framework |
|---|---|
GroupDocs.Comparison |
net462;net6.0;net8.0;net10.0 (所有框架) |
GroupDocs.Comparison.net462 |
.NET Framework 4.6.2 |
GroupDocs.Comparison.net6 |
.NET 6.0 |
GroupDocs.Comparison.net8 |
.NET 8.0 |
GroupDocs.Comparison.net10 |
.NET 10.0 |
注意: .NET Standard 2.1 不再作为单独目标受支持。之前依赖
netstandard2.1的项目应迁移到上述支持的任一 TFM。
在 RevisionHandler 中支持可选释放传入的流
RevisionHandler 现在接受一个 leaveOpen 参数,用于控制在处理器被释放时是否同时释放底层流。当 leaveOpen 设置为 true 时,流在 RevisionHandler 释放后仍保持打开状态,调用方可以继续使用它。这在外部管理流生命周期的场景中非常有用。
using FileStream revisionFileStream = new FileStream("source.docx", FileMode.Open, FileAccess.ReadWrite);
using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true))
{
List<RevisionInfo> revisionList = revisionHandler.GetRevisions();
foreach (var rev in revisionList)
{
if (rev.Type == RevisionType.Deletion)
rev.Action = RevisionAction.Accept;
}
ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList };
revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges);
}
为 ChangeInfo 扩展电子表格属性
ChangeInfo 新增了三个属性,用于在比较 Excel (.xlsx) 和 CSV (.csv) 文件时提供电子表格特定的元数据,帮助您精确定位每一次更改在表格网格中的位置:
Row– 更改单元格的零基行索引。Column– 更改单元格的零基列索引。ColumnHeader– 包含更改单元格的列的标题文本(如果可用)。
下面的示例演示了如何比较两个 CSV 文件并将更改列表(包括新的电子表格属性)序列化为 JSON:
string source = "source.csv";
string target = "target.csv";
string outFilePathJson = "result.json";
using (var comparer = new Comparer(source))
{
comparer.Add(target);
var doc = comparer.Compare();
var changes = doc.Changes;
var json = changes.Select(c => new
{
id = c.Id,
type = c.Type.ToString(),
componentType = c.ComponentType,
row = c.Row,
column = c.Column,
columnHeader = c.ColumnHeader,
sourceText = c.SourceText,
targetText = c.TargetText,
text = c.Text
});
File.WriteAllText(outFilePathJson,
JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true }));
}
增强功能
使用文本标记提升 CSV 比较结果的可读性
CSV 比较输出现在使用内联文本标记,使插入和删除的内容能够立即可见,无需并排视图:
- 插入 的文本用圆括号包裹,例如
(new value) - 删除 的文本用方括号包裹,例如
[old value]
如何获取更新
您可以通过 NuGet 获取最新版本,或直接从 GroupDocs 网站 下载。
NuGet
GroupDocs.Comparison for .NET 26.5
直接下载
从 [GroupDocs.Comparison for .NET 26.5](https://releases.groupdocs.com/com