오늘은 C# 문서에서 워터마크를 찾고 제거하는 방법을 살펴보겠습니다. 문서에는 텍스트 및 이미지 기반 워터마크가 있을 수 있습니다. 많은 PDF, Word, Excel, PowerPoint 및 Visio 지원 문서에서 이러한 워터마크를 쉽게 검색하고 프로그래밍 방식으로 제거할 수 있습니다.

이 문서에서는 다음 주제를 다룹니다.

GroupDocs API를 사용하여 문서에서 워터마크 찾기 및 제거

워터마크 제거를 위한 .NET API

.NET용 워터마크 API - GroupDocs

GroupDocs.Watermark for .NET는 추가 소프트웨어가 필요 없는 빠르고 효율적인 워터마킹 API입니다. 타사 도구가 제거하기 어려운 방식으로 문서 및 이미지에 워터마크를 추가할 수 있습니다. 또한 C# 개발자는 워드 프로세서 문서, 스프레드시트, 프레젠테이션, **Visio 도면*의 다양한 MicrosoftOpenOffice 파일 형식에서 워터마크를 쉽게 제거할 수 있습니다. * 및 PDF .NET 애플리케이션의 문서. 모든 지원되는 파일 형식문서에 언급되어 있습니다.

이제 워터마크를 찾아 제거하는 예제를 보여 드리겠습니다. 따라서 적절한 옵션 중 하나를 수행하여 사전에 환경을 준비하는 것이 좋습니다.

PM> Install-Package GroupDocs.Watermark

C#을 사용하여 문서에서 워터마크 찾기

Watermarker, PossibleWatermarkCollection ([PossibleWatermark][11] 모음집은 다양한 검색 기준을 가진 문서에서 다양한 종류의 워터마크를 찾아 신속하게 제거하는 API의 클래스입니다. 단계는 다음과 같습니다. C#을 사용하여 제공된 문서의 모든 워터마크에 대한 기본 검색 워터마크에 대한 검색을 더욱 세분화할 수 있으며 이는 이 문서의 뒷부분에 나와 있습니다.

  • 소스 문서 파일로 Watermarker 클래스 객체를 생성합니다.
  • Search 메서드를 호출합니다. 문서에서 가능한 모든 워터마크를 반환합니다.
  • 워터마크 컬렉션을 탐색하여 데이터를 표시하거나 각 워터마크에 대한 작업을 수행합니다.
// C#을 사용하여 Word, Excel, PowerPoint, Visio 및 PDF 문서의 모든 워터마크 찾기
using (Watermarker watermarker = new Watermarker("filepath/documentWithWatermarks.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();
    foreach (PossibleWatermark possibleWatermark in possibleWatermarks)
    {
        if (possibleWatermark.ImageData != null)
        {
            Console.WriteLine(possibleWatermark.ImageData.Length);
        }
        Console.WriteLine(possibleWatermark.Text);
        Console.WriteLine(possibleWatermark.X);
        Console.WriteLine(possibleWatermark.Y);
        Console.WriteLine(possibleWatermark.RotateAngle);
        Console.WriteLine(possibleWatermark.Width);
        Console.WriteLine(possibleWatermark.Height);
    }
}

C#의 문서에서 워터마크 제거

검색된 모든 워터마크에서 모든 워터마크 또는 모든 워터마크를 한 번에 제거할 수 있습니다. 여기서 중요한 것은 삭제하려는 워터마크를 성공적으로 찾았는지 여부입니다. 문서에 다양한 유형의 워터마크가 있는 경우 어떻게 합니까? API는 워터마크 검색을 구체화할 수 있는 다양한 옵션을 제공합니다. 다음 코드는 C#을 사용하여 컬렉션 인덱스를 지정하여 PDF 문서에서 워터마크를 제거합니다.

// C#을 사용하여 PDF 및 기타 문서에서 워터마크 제거
using (Watermarker watermarker = new Watermarker("filepath/documentWithWatermarks.pdf"))
{
    PossibleWatermarkCollection possibleWatermarks = watermarker.Search();

    // 문서에서 지정된 인덱스의 워터마크를 제거합니다.
    possibleWatermarks.RemoveAt(0);

    // 문서에서 지정된 워터마크를 제거합니다.
    possibleWatermarks.Remove(possibleWatermarks[0]);

    watermarker.Save("filepath/noWatermarks.pdf");
}

워터마크에 대한 추가 검색 기준

특정 기준으로 워터마크를 찾는 다른 많은 방법이 있습니다. 선택적 검색 후 Remove, RemoveAt 또는 Clear 메서드를 사용하여 컬렉션에서 워터마크를 제거할 수 있습니다. 다음은 제공된 문서에서 워터마크를 찾는 몇 가지 방법입니다.

  • 특정 텍스트가 포함된 워터마크 찾기 및 제거
  • RegEx(정규식)로 워터마크 검색 및 제거
  • 지정된 텍스트 형식으로 워터마크 검색
  • 하이퍼링크 워터마크 찾기 및 제거

특정 텍스트가 있는 워터마크 찾기 및 제거

다음 C# 코드를 사용하여 정확한 문자열을 지정하여 텍스트 워터마크를 검색할 수 있습니다.

 // Find possible watermarks containing the specified text
TextSearchCriteria textSearchCriterion = new TextSearchCriteria("© 2020");
PossibleWatermarkCollection possibleWatermarks = watermarker.Search(textSearchCriterion);

RegEx로 워터마크 검색 및 제거

워터마크의 텍스트에 패턴이 있는 경우 정규식(RegEx)을 제공하여 이러한 워터마크를 검색하고 다음 C# 코드를 사용하여 나중에 적절히 제거할 수 있습니다. 이 코드는 ©YYYY가 있는 모든 워터마크를 가져옵니다.

// Search Watermarks by Regular Expression
Regex regex = new Regex(@"^© \\d{4}$");
TextSearchCriteria textSearchCriterion = new TextSearchCriteria(regex);
PossibleWatermarkCollection possibleWatermarks = watermarker.Search(textSearchCriterion);

특정 텍스트 형식으로 워터마크 찾기 및 제거

글꼴 이름, 최소/최대 글꼴 크기, 굵게/이탤릭/밑줄 등과 같은 특정 텍스트 형식이 있는 워터마크도 찾을 수 있습니다.

TextFormattingSearchCriteria criterion = new TextFormattingSearchCriteria()
{
    FontName = "Arial",
    MinFontSize = 19,
    MaxFontSize = 42,
    FontBold = true
};
PossibleWatermarkCollection watermarks = watermarker.Search(criterion);
watermarks.Clear();

하이퍼링크 워터마크 찾기 및 제거

RegEx를 사용하여 콘텐츠에 하이퍼링크가 있는 텍스트 워터마크를 찾을 수 있습니다. 나중에 검색 결과에 하이퍼링크 워터마크가 있는 경우 컬렉션에서 확인할 수 있습니다. 제거 방법 중 하나를 사용하여 제거할 수 있습니다. 다음 C# 코드는 하이퍼링크가 있는 모든 워터마크를 제거합니다.

PossibleWatermarkCollection watermarks = watermarker.Search(new TextSearchCriteria(new Regex(@"anyurl\\.com")));
for (int i = watermarks.Count - 1; i >= 0; i--)
{
    // Is watermark the hyperlink?
    if (watermarks\[i\] is HyperlinkPossibleWatermark)
    {
        watermarks.RemoveAt(i);
    }
}

[워터마크 검색][12]을 수정하는 다른 많은 방법이 있습니다. 자세한 내용은 [문서][13]를 참조하십시오. 문의사항은 [포럼][14]을 참조하세요.

결론

이제 .NET 응용 프로그램 내에서 C#을 사용하여 Word 문서, Excel 스프레드시트, Powerpoint 프레젠테이션, PDF 문서 및 Visio 그림에서 텍스트 워터마크와 이미지 워터마크를 찾고 제거하는 데 더 자신 있게 될 것이라고 믿습니다.

또한보십시오

  • [C#을 사용하여 문서의 이미지 또는 이미지에 워터마크 추가][15]
  • [자바에서 이미지에 워터마크 추가][16]
  • [Java 문서에서 워터마크 찾기 및 제거][17]

[11]: https://apireference.groupdocs.com/watermark/net/groupdocs.watermark.search/possiblewatermark) [12]: https://docs.groupdocs.com/watermark/net/searching-watermarks/ [13]: https://docs.groupdocs.com/watermark/net/ [14]: https://forum.groupdocs.com/c/watermark [15]: https://blog.groupdocs.com/2019/10/21/add-watermark-to-images-using-csharp-dotnet-api/ [16]: https://blog.groupdocs.com/ko/2020/09/15/add-watermark-to-images-in-java/ [17]: https://blog.groupdocs.com/ko/2020/11/30/find-and-remove-watermarks-from-documents-in-java/