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

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

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

Docotic.Pdf 라이브러리 9.4.17444-dev 회귀 테스트 14,746건의 테스트 통과 총 NuGet 다운로드 4,394,692

샘플 코드를 사용해 보려면 Docotic.Pdf 라이브러리가 필요합니다. Docotic.Pdf 바이너리를 다운로드하거나 NuGet 패키지를 사용하세요. 평가 모드 제한 없이 라이브러리를 사용해 보려면 여기에서 시간 제한이 있는 무료 라이센스 키를 얻을 수 있습니다.

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

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 샘플을 살펴보세요: