우리는 GroupDocs.Comparison for .NET 26.5의 출시를 기쁘게 발표합니다. 이 버전은 2026년 5월부터 사용할 수 있습니다.
GroupDocs.Comparison 버전 26.5는 PDF 렌더링 정확도 향상, CSV 및 스프레드시트 비교 가독성 개선, 리비전 처리와 스프레드시트 변경 메타데이터를 위한 새로운 API 기능, 그리고 다중 프레임워크 지원이 포함된 업데이트된 NuGet 패키징 모델을 제공합니다.

Fixes and enhancements

  • [Feature] 다중 프레임워크 NuGet 패키징 및 TFM 분할 패키지. (COMPARISONNET-4770)
  • [Enhancement] PDF 비교: 인라인 모드에서 단락 렌더링 정확도 향상. (COMPARISONNET-4751)
  • [Enhancement] 표가 포함된 PDF 문서에 대한 비교 결과 개선. (COMPARISONNET-4763)
  • [Bug] 스타일이 적용된 표가 있는 PDF를 비교할 때 발생하던 ArgumentOutOfRangeException 수정. (COMPARISONNET-4762)
  • [Feature] RevisionHandler에서 전달된 스트림의 선택적 폐기 지원. (COMPARISONNET-4773)
  • [Enhancement] 텍스트 마커를 사용한 CSV 비교 결과 가독성 향상. (COMPARISONNET-4769)
  • [Feature] ChangeInfo에 스프레드시트 속성 추가. (COMPARISONNET-4767)
  • [Bug] HTML 출력 시 Compare 메서드가 예외를 발생시키는 문제 수정. (COMPARISONNET-4764)

Major Features

Multi-framework NuGet packaging and TFM-split packages

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 (all frameworks)
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

Note: .NET Standard 2.1은 이제 전용 대상으로 지원되지 않습니다. 이전에 netstandard2.1을 사용하던 프로젝트는 위에 나열된 지원되는 TFMs 중 하나로 마이그레이션해야 합니다.

Support optional disposal of passed stream in RevisionHandler

RevisionHandler는 이제 leaveOpen 매개변수를 받아, 핸들러가 폐기될 때 기본 스트림을 폐기할지 여부를 제어합니다. leaveOpentrue로 설정하면 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);
}

Extend ChangeInfo with Spreadsheet Properties

ChangeInfo에 스프레드시트 전용 메타데이터를 노출하는 세 개의 새로운 속성이 추가되었습니다. 이 속성들은 Excel (.xlsx) 및 CSV (.csv) 파일을 비교할 때 채워지며, 스프레드시트 그리드 내에서 각 변경 사항을 정확히 위치시킬 수 있게 해줍니다.

  • Row – 변경된 셀의 0 기반 행 인덱스.
  • Column – 변경된 셀의 0 기반 열 인덱스.
  • 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 }));
}

Enhancements

Improve CSV comparison result readability with text markers

CSV 비교 출력이 이제 인라인 텍스트 마커를 사용하여 삽입 및 삭제된 내용을 바로 확인할 수 있게 되었습니다. 별도의 나란히 보기 없이도 변경 사항을 즉시 파악할 수 있습니다.

  • 삽입된 텍스트는 괄호로 감싸집니다 — 예: (new value)
  • 삭제된 텍스트는 대괄호로 감싸집니다 — 예: [old value]

How to get the update

최신 버전은 NuGet에서 받거나 GroupDocs 웹사이트에서 직접 다운로드할 수 있습니다.

NuGet

GroupDocs.Comparison for .NET 26.5

Direct download

GroupDocs.Comparison for .NET 26.5 페이지에서 .NET 및 .NET Framework용 어셈블리를 다운로드하십시오.

Learn more