이 페이지에는 자동 번역된 텍스트가 포함될 수 있습니다.

C# 및 VB.NET의 PDF에서 텍스트 추출

PDF 문서에서 텍스트를 추출하는 것은 C# 및 VB.NET 개발자의 일반적인 작업입니다. Docotic.Pdf 라이브러리를 사용하면 Windows, Linux, macOS, Android, iOS 또는 클라우드 환경에서 단 몇 줄의 코드로 텍스트를 추출할 수 있습니다.

Docotic.Pdf 라이브러리 9.6.17807 회귀 테스트 14,868건의 테스트 통과 총 NuGet 다운로드 5,134,090

샘플 코드를 사용해 보려면 Docotic.Pdf 라이브러리가 필요합니다. C# .NET PDF 라이브러리 다운로드 페이지에서 라이브러리와 무료 기간 제한 라이선스 키를 받으세요.

텍스트 추출에는 다양한 접근 방식이 있습니다. 몇 가지 실제 사례를 살펴보겠습니다.

PDF 에서 텍스트 추출

PDF를 일반 텍스트로 변환

PDF 내용의 색인화, 읽기 또는 일종의 분석을 위해 일반 텍스트를 사용할 수 있습니다. 이 샘플은 C# 에서 PDF 를 텍스트로 변환하는 방법을 보여줍니다:

using BitMiracle.Docotic.Pdf;

using (var pdf = new PdfDocument("your_document.pdf"))
{
    string documentText = pdf.GetText();
    Console.WriteLine(documentText);
}

PdfDocument.GetText()샘플 문서에 대해 다음 결과를 제공합니다:

C# .NET의 PDF 문서에서 일반 텍스트 추출 결과

또는 개별 페이지에서 텍스트를 추출할 수 있습니다:

using (var pdf = new PdfDocument("your_document.pdf"))
{
    for (int i = 0; i < pdf.PageCount; ++i)
    {
        string pageText = pdf.Pages[i].GetText();
        using (var writer = new StreamWriter($"page_{i}.txt"))
            writer.Write(pageText);
    }
}

관련 C# 및 VB.NET 샘플은 GitHub 에서 확인할 수 있습니다.

PDF를 서식 있는 텍스트로 변환

서식이 지정된 텍스트를 사용하여 일부 구조화된 텍스트 데이터를 구문 분석하거나 사람이 읽을 수 있는 형식으로 텍스트를 표시할 수 있습니다. 이 샘플은 C# 에서 PDF 를 서식 있는 텍스트로 변환하는 방법을 보여줍니다:

using (var pdf = new PdfDocument("your_document.pdf"))
{
    string formattedText = pdf.GetTextWithFormatting(); // 또는 사용 pdf.Pages[i].GetTextWithFormatting()
    Console.WriteLine(formattedText);
}

PdfDocument.GetTextWithFormatting()샘플 문서에 대해 다음과 같은 결과를 제공합니다: C# .NET의 PDF 문서에서 서식 있는 텍스트 추출 결과

특정 영역에서 일반 또는 서식 있는 텍스트 추출

PDF 페이지의 특정 부분에서만 텍스트를 추출해야 할 수도 있습니다. 예를 들어 페이지 헤더의 텍스트만 구문 분석합니다. 도서관에서도 이를 지원합니다. C# 샘플:

using (var pdf = new PdfDocument("your_document.pdf"))
{
    var page = pdf.Pages[0];
    var options = new PdfTextExtractionOptions
    {
        Rectangle = new PdfRectangle(0, 0, page.Width, 100),
        WithFormatting = false
    };
    string areaText = page.GetText(options);
    Console.WriteLine(areaText);
}

이 샘플은 샘플 문서에 대해 다음과 같은 결과를 제공합니다: C# .NET의 특정 영역에서 텍스트를 추출한 결과

자세한 텍스트 정보 추출

포괄적인 분석을 위해 모든 텍스트 청크에 대한 자세한 정보를 얻을 수도 있습니다. Docotic.Pdf 는 단어 또는 문자별로 텍스트를 있는 그대로 추출하는 방법을 제공합니다. 모든 텍스트 청크에 대해 라이브러리는 다음을 추출합니다:

  • 유니코드 텍스트
  • 페이지의 경계
  • 폰트
  • 글꼴 크기
  • 크기 조절 및 회전된 텍스트에 유용한 변환 행렬
  • 렌더링 모드
  • 채우기 색상, 불투명도, 패턴
  • 개요 스타일
  • 각 캐릭터에 대한 자세한 정보

이 샘플은 C# 의 PDF 페이지에서 단어별로 텍스트를 추출하는 방법을 보여줍니다:

using (PdfDocument pdf = new PdfDocument("your_document.pdf"))
{
    PdfPage page = pdf.Pages[0];
    foreach (PdfTextData data in page.GetWords())
    {
        Console.WriteLine(
            $"{{\n" +
            $"  text: '{data.GetText()}',\n" +
            $"  bounds: {data.Bounds},\n" +
            $"  font name: '{data.Font.Name}',\n" +
            $"  font size: {data.FontSize},\n" +
            $"  transformation matrix: {data.TransformationMatrix},\n" +
            $"  rendering mode: '{data.RenderingMode}',\n" +
            $"  brush: {data.Brush},\n" +
            $"  pen: {data.Pen}\n" +
            $"}},"
        );

        page.Canvas.DrawRectangle(data.Bounds);
    }

    pdf.Save("result.pdf");
}

샘플은 샘플 문서에 대해 다음과 같은 결과를 제공합니다: C# .NET 의 PDF 에서 자세한 텍스트 추출 결과

다음 Docotic.Pdf 메소드를 사용하여 자세한 텍스트 정보를 얻을 수 있습니다:

관련 GitHub 샘플:

오른쪽에서 왼쪽 및 양방향 텍스트 추출

Docotic.Pdf 는 PDF 문서에서 아랍어, 히브리어 및 페르시아어 텍스트를 올바르게 추출합니다.

내부적으로 PDF 문서는 시각적 순서에 따라 텍스트를 저장합니다. 이는 오른쪽에서 왼쪽으로 쓰는 스크립트를 사용하는 언어의 텍스트가 반대로 저장된다는 의미입니다. Docotic.Pdf 는 추출된 텍스트를 논리적 순서에 따라 재정렬합니다. 이는 오른쪽에서 왼쪽으로 읽는 텍스트를 읽는 독자가 일반적으로 기대하는 것입니다.

특별한 일을 할 필요는 없습니다. RTL 텍스트를 올바른 순서로 얻으려면 위의 코드 조각을 사용하세요.

OCR (텍스트 인식)

처리하는 PDF 에 텍스트가 포함된 이미지가 포함되어 있는 경우 광학 문자 인식을 사용하여 텍스트를 추출할 수 있습니다. 다음 샘플은 Docotic.Pdf 및 Tesseract 를 사용하여 이를 수행하는 방법을 보여줍니다:

자세한 내용은 .NET 의 OCR PDF 문서를 참조하세요.

클라우드 환경에서 글꼴 로딩

위의 샘플은 Windows, Linux, macOS 등 모든 환경에서 잘 작동합니다. AWS Lambda 와 같은 클라우드 플랫폼에서는 하나의 추가 구성 단계를 수행해야 할 수도 있습니다.

포함되지 않은 글꼴을 사용하는 PDF 문서가 있습니다. 기본적으로 Docotic.Pdf 는 시스템 글꼴 컬렉션(예: C:/Windows/Fonts 또는 /usr/share/fonts)에서 해당 글꼴을 로드합니다. 그러나 클라우드 플랫폼에서는 이러한 글꼴 컬렉션에 대한 액세스가 제한될 수 있습니다.

애플리케이션을 사용하여 자신만의 인기 글꼴 컬렉션을 배포할 수 있습니다. 공용 글꼴 파일을 찾아서 프로젝트에 복사하세요. .NET 프로젝트에서 CopyToOutputDirectory = Always 로 모든 글꼴 파일을 표시합니다. 컬렉션을 사용하려면 맞춤 DirectoryFontLoaderPdfDocument 를 초기화하세요:

PdfConfigurationOptions config = PdfConfigurationOptions.Create();
config.FontLoader = new DirectoryFontLoader(new[] { "path_to_your_font_collection" }, true);
using (PdfDocument pdf = new PdfDocument("your_document.pdf", config))
{
   ...
}

결론

Docotic.Pdf 라이브러리를 사용하여 C# 및 VB.NET 의 PDF 에서 일반 텍스트 또는 서식 있는 텍스트를 추출할 수 있습니다. 모든 텍스트 청크에 대한 자세한 정보를 추출할 수도 있습니다. Docotic.Pdf 를 여기에서 다운로드할 수 있습니다.

PDF 에서 텍스트를 추출하려면 C# 및 VB.NET 샘플을 살펴보세요: