GroupDocs.Redaction for .NET 26.6이(가) 이제 제공됩니다. 이번 릴리스에서는 스트림 및 파일에서 명시적인 형식으로 문서를 열기가 쉬워졌으며, System.Drawing에 의존하지 않는 새로운 그리기 API를 도입해 크로스 플랫폼 호환성을 향상시켰습니다.

수정 및 개선 사항

  • [Enhancement] 스트림 또는 파일 경로에서 문서를 열 때 파일 형식을 지정합니다. (REDACTIONNET-572)
  • [Enhancement] System.Drawing에서 마이그레이션하여 크로스 플랫폼 호환성을 강화합니다. (REDACTIONNET-799)

새로운 기능

이번 릴리스는 통합을 간소화하고 API를 보다 넓은 플랫폼 지원을 위해 준비하는 두 가지 영역에 중점을 두었습니다.

LoadOptions.FileType으로 문서 형식 지정

문서를 열 때 GroupDocs.Redaction은 일반적으로 형식을 자동으로 감지합니다. 파일 확장자가 올바른 경우에는 잘 작동하지만, 파일 이름이 없는 스트림이거나 확장자가 실제 내용과 일치하지 않을 경우 감지가 실패할 수 있습니다.

버전 26.6에서는 LoadOptions.FileType 속성과 LoadOptions(FileType) 생성자가 추가되었습니다. FileTypeFileType.DOCX 또는 FileType.PDF와 같은 지원되는 상수로 설정하면, 라이브러리는 바이너리 형식 감지를 수행하지 않고 해당 형식으로 문서를 엽니다. FileType을 지정하지 않거나 FileType.Unknown인 경우 기본 동작은 변경되지 않습니다.

GroupDocs.Redaction.Options.Drawing의 크로스 플랫폼 그리기 타입

이전에는 여러 레드랙션 옵션이 System.Drawing 타입(Color, Point, Size, Rectangle, Font)에 의존했습니다. 이러한 타입은 모든 플랫폼에서 사용할 수 없으며, Linux 및 컨테이너 환경에서 배포를 복잡하게 만들 수 있습니다.

새로운 GroupDocs.Redaction.Options.Drawing 네임스페이스는 공개 API에서 사용할 수 있도록 Color, Point, Size, Rectangle, Font, FontStyle 타입을 제공합니다. 새로운 오버로드는 ReplacementOptions, RegionReplacementOptions, ImageAreaRedaction, PageAreaFilter, TextFragment 및 관련 클래스에서 이러한 타입을 받아들입니다.

System.Drawing을 사용하던 기존 코드는 계속 컴파일되고 실행됩니다. 해당 멤버는 폐기 예정으로 표시되며, 향후 업데이트에서는 새로운 타입으로 마이그레이션해야 합니다.

공개 API 변경 사항

추가된 내용

  • LoadOptions.FileType 속성
  • LoadOptions(FileType fileType) 생성자
  • GroupDocs.Redaction.Options.Drawing에 포함된 그리기 타입: Color, Point, Size, Rectangle, Font, FontStyle
  • GroupDocs.Redaction.Options.Drawing 타입을 받아들이는 새로운 오버로드

폐기된 내용

  • ReplacementOptions.BoxColor — 대신 ReplacementOptions.BoxFillColor 사용
  • ReplacementOptions(System.Drawing.Color) — 대신 ReplacementOptions(GroupDocs.Redaction.Options.Drawing.Color) 사용
  • RegionReplacementOptions.FillColor — 대신 RegionReplacementOptions.AreaFillColor 사용
  • RegionReplacementOptions.Size — 대신 RegionReplacementOptions.AreaSize 사용
  • RegionReplacementOptions(System.Drawing.Color, System.Drawing.Size) — 대신 GroupDocs.Redaction.Options.Drawing.ColorGroupDocs.Redaction.Options.Drawing.Size를 사용하는 오버로드 사용
  • RegionReplacementOptions(System.Drawing.Color, System.Drawing.Font, string) — 대신 GroupDocs.Redaction.Options.Drawing.ColorGroupDocs.Redaction.Options.Drawing.Font를 사용하는 오버로드 사용
  • ImageAreaRedaction.TopLeft — 대신 ImageAreaRedaction.TopLeftPosition 사용
  • ImageAreaRedaction(System.Drawing.Point, RegionReplacementOptions) — 대신 GroupDocs.Redaction.Options.Drawing.Point를 사용하는 오버로드 사용
  • PageAreaFilter.Rectangle — 대신 PageAreaFilter.AreaRectangle 사용
  • PageAreaFilter(System.Drawing.Point, System.Drawing.Size) — 대신 GroupDocs.Redaction.Options.Drawing.PointGroupDocs.Redaction.Options.Drawing.Size를 사용하는 오버로드 사용
  • TextFragment.Rectangle — 대신 TextFragment.BoundingRectangle 사용
  • TextFragment(string, System.Drawing.Rectangle) — 대신 TextFragment(string, GroupDocs.Redaction.Options.Drawing.Rectangle) 사용
  • IImageFormatInstance.EditArea(System.Drawing.Point, RegionReplacementOptions) — 대신 GroupDocs.Redaction.Options.Drawing.Point를 사용하는 오버로드 사용

코드 예제

명시적인 파일 형식으로 문서 열기

using System.IO;
using GroupDocs.Redaction.Options;
using GroupDocs.Redaction.Redactions;

using (Stream stream = File.OpenRead("sample.docx"))
{
    using (Redactor redactor = new Redactor(stream, new LoadOptions(FileType.DOCX)))
    {
        redactor.Apply(new DeleteAnnotationRedaction());
        redactor.Save();
    }
}

using (Redactor redactor = new Redactor("sample.pdf", new LoadOptions(FileType.PDF)))
{
    redactor.Apply(new ExactPhraseRedaction("Test", new ReplacementOptions("[redacted]")));
    redactor.Save();
}

System.Drawing 대신 GroupDocs.Redaction.Options.Drawing 사용

using GroupDocs.Redaction.Options.Drawing;
using GroupDocs.Redaction.Redactions;

// 이전: new ReplacementOptions(System.Drawing.Color.Red)
using (Redactor redactor = new Redactor("sample.docx"))
{
    redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(Color.Red)));
    redactor.Save();
}

// 이전: new ImageAreaRedaction(new System.Drawing.Point(516, 311),
//     new RegionReplacementOptions(System.Drawing.Color.Blue, new System.Drawing.Size(170, 35)))
using (Redactor redactor = new Redactor("sample.jpg"))
{
    redactor.Apply(new ImageAreaRedaction(new Point(516, 311),
        new RegionReplacementOptions(Color.Blue, new Size(170, 35))));
    redactor.Save();
}

업데이트 받는 방법

  • NuGetNuGet 을 통해 최신 GroupDocs.Redaction for .NET 패키지로 업그레이드
  • 직접 다운로드GroupDocs.Redaction for .NET 26.6 페이지에서 어셈블리를 다운로드

자세히 알아보기