C# PDF에서 텍스트 찾기 및 바꾸기

찾기 및 바꾸기 옵션을 사용하면 문서의 특정 텍스트를 한 번에 바꿀 수 있습니다. 이렇게 하면 전체 문서에서 텍스트가 나타날 때마다 수동으로 찾아서 업데이트할 필요가 없습니다. 이 기사에서는 한 단계 더 나아가 PDF 문서에서 텍스트 찾기 및 바꾸기 기능을 자동화하는 방법을 다룹니다. 특히, C# .NET에서 PDF의 텍스트를 찾고 바꾸는 방법을 배웁니다. 또한 C#을 사용하여 특정 페이지 또는 페이지 영역의 텍스트를 바꾸는 방법도 보여줍니다.

PDF에서 텍스트 찾기 및 바꾸기를 위한 C# .NET API - 무료 다운로드

Aspose.PDF for .NET은 .NET 응용 프로그램에 대한 기본 및 고급 PDF 조작 기능을 제공하는 C# 클래스 라이브러리입니다. 또한 API를 사용하면 PDF 파일의 텍스트를 다양한 방식으로 원활하게 찾고 바꿀 수 있습니다. API의 DLL을 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.

PM> Install-Package Aspose.PDF

C#을 사용하여 PDF에서 텍스트 찾기 및 바꾸기

다음은 PDF 문서에서 텍스트를 찾고 바꾸는 단계입니다.

다음 코드 샘플은 C#을 사용하여 PDF에서 텍스트를 찾고 바꾸는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("Document.pdf");

// 입력 검색 구문의 모든 인스턴스를 찾기 위해 TextAbsorber 객체 생성
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// 모든 페이지에 대해 흡수 장치를 수락하십시오.
pdfDocument.Pages.Accept(textFragmentAbsorber);

// 추출된 텍스트 조각 가져오기
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// 조각을 통해 루프
foreach (TextFragment textFragment in textFragmentCollection)
{
    // 텍스트 및 기타 속성 업데이트
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// 결과 PDF 문서를 저장합니다.
pdfDocument.Save("updated-document.pdf");

C# 특정 PDF 페이지에서 텍스트 바꾸기

다음은 PDF 문서의 특정 페이지에서 텍스트를 찾아 바꾸는 단계입니다.

  • Document 클래스를 사용하여 해당 경로를 사용하여 PDF 문서를 로드합니다.
  • TextFragmentAbsorber 클래스의 인스턴스를 만들고 생성자에 검색 구문을 제공합니다.
  • [Document.Pages1.Accept(TextFragmentAbsorber)]12를 사용하여 원하는 페이지의 텍스트 흡수기를 수락합니다.
  • 발견된 TextFragmentAbsorber.TextFragments 컬렉션을 반복하고 각 조각의 텍스트를 바꿉니다.
  • Document.Save(String) 메서드를 사용하여 업데이트된 PDF 문서를 저장합니다.

다음 코드 샘플은 C#을 사용하여 PDF의 특정 페이지에서 텍스트를 찾고 바꾸는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("Document.pdf");

// 입력 검색 구문의 모든 인스턴스를 찾기 위해 TextAbsorber 객체 생성
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// 원하는 흡수 장치를 수락
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// 추출된 텍스트 조각 가져오기
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// 조각을 통해 루프
foreach (TextFragment textFragment in textFragmentCollection)
{
    // 텍스트 및 기타 속성 업데이트
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// 결과 PDF 문서를 저장합니다.
pdfDocument.Save("updated-document.pdf");

C#의 PDF 페이지 영역에서 텍스트 바꾸기

PDF 문서에서 페이지의 특정 영역에 있는 텍스트를 찾아 바꿀 수도 있습니다. 다음 단계는 특정 영역을 정의한 다음 그 안에 있는 텍스트를 바꾸는 방법을 보여줍니다.

다음 코드 샘플은 C#을 사용하여 PDF의 특정 페이지 영역에서 텍스트를 찾고 바꾸는 방법을 보여줍니다.

// PDF 파일 로드
Document pdf = new Document("Document.pdf");

// TextFragment Absorber 객체 인스턴스화
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// 페이지 경계 내에서 검색 텍스트
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// TextSearch 옵션에 대한 페이지 영역 지정
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// PDF 파일의 첫 페이지에서 텍스트 검색
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// 개별 TextFragment를 통해 반복
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // 텍스트를 공백 문자로 업데이트
    tf.Text = "";
}

// 텍스트 교체 후 업데이트된 PDF 파일 저장
pdf.Save("output.pdf");

C# PDF의 텍스트를 정규 표현식으로 바꾸기(Regex)

또한 정규식을 사용하여 특정 패턴과 일치하는 텍스트 항목을 찾고 바꿀 수 있습니다. 이를 위해 일반 검색 구문 대신 정규식만 제공하고 TextSearchOptions를 사용하면 됩니다. 다음은 그렇게 하는 단계입니다.

다음 코드 샘플은 C#을 사용하여 정규식을 사용하여 PDF에서 텍스트를 찾고 바꾸는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("Document.pdf");

// 정규 표현식과 일치하는 모든 구문을 찾기 위해 TextAbsorber 객체 생성
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// 정규식 사용을 지정하는 텍스트 검색 옵션 설정
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// 단일 페이지에 대한 흡수체를 수락하십시오.
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// 추출된 텍스트 조각 가져오기
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// 조각을 통해 루프
foreach (TextFragment textFragment in textFragmentCollection)
{
    // 텍스트 및 기타 속성 업데이트
    textFragment.Text = "New Phrase";
    // 개체의 인스턴스로 설정합니다.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// PDF 저장
pdfDocument.Save("output.pdf");

결론

PDF 자동화는 웹 또는 데스크탑 애플리케이션 내에서 PDF 문서를 조작하기 위해 요즘 널리 채택되고 있습니다. 이 문서에서는 C#에서 PDF의 텍스트를 찾고 바꾸는 유용한 PDF 자동화 기능에 대해 설명했습니다. 단계별 가이드 및 코드 샘플은 전체 PDF, PDF의 특정 페이지 또는 페이지 영역에서 텍스트를 찾고 바꾸는 방법을 보여주었습니다. API의 문서를 사용하여 고급 기능을 탐색할 수 있습니다.

또한보십시오