.NET에서 PDF에서 텍스트를 추출하는 방법
이 기사에서는 .NET을 위한 Aspose.PDF 텍스트 추출기를 사용하여 PDF 문서에서 녹음하는 방법을 보여줍니다.당신은 지원되는 모든 인출 모드(Pure, Raw, Plain)를 사용하고 개별 또는 여러 PDF를 위한 자동 작업 흐름을 배울 수 있습니다.
현실 세계 문제
PDF에서 텍스트를 수동으로 복사하는 것은 효율적이지 않으며 오류가 발생합니다. 데이터 분석, 문서 이주 또는 아카이브 응용 프로그램의 경우 자동화 된 테스트 추출은 일관성, 속도 및 정확성을 보장한다.
솔루션 검토
Aspose.PDF Text Extractor for .NET은 다양한 형식의 텍스트를 추출하기 위해 깨끗하고 프로그래밍 가능한 인터페이스를 제공합니다.Pure, Raw 및 Plain 모드를 선택하여 사용 사례에 맞게 선택하십시오.그것은 포맷 된 출력, 원료 데이터 또는 평평한 콘텐츠가 필요한지 여부입니다.
원칙
- Visual Studio 2019 또는 이후
- .NET 6.0 또는 이후
- NuGet을 통해 설치된 .NET을 위한 Aspose.PDF
PM> Install-Package Aspose.PDF
단계별 실행
단계 1: 설치 및 설정 Aspose.PDF
using Aspose.Pdf.Plugins;
using System.IO;
단계 2: 기본 (Raw) 모드를 사용하여 텍스트 추출
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(); // Raw mode by default
options.AddInput(new FileDataSource("input.pdf"));
var resultContainer = extractor.Process(options);
string textExtracted = resultContainer.ResultCollection[0].ToString();
Console.WriteLine(textExtracted);
}
단계 3: 순수 또는 평평한 모드에서 텍스트를 추출
- 순수 모드: 상대적 위치를 유지하고 조정 공간을 추가합니다.
- Plain 모드: 스트립 형식화, 최소 공간을 가진 출력 텍스트.
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure); // Or .Plain
options.AddInput(new FileDataSource("input.pdf"));
var resultContainer = extractor.Process(options);
string textExtracted = resultContainer.ResultCollection[0].ToString();
Console.WriteLine(textExtracted);
}
사용 사례 및 응용 프로그램 (코드 변형과 함께)
1. Batch PDF에서 텍스트 추출
string[] files = Directory.GetFiles(@"C:\PDFs", "*.pdf");
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
foreach (var file in files)
options.AddInput(new FileDataSource(file));
var resultContainer = extractor.Process(options);
for (int i = 0; i < resultContainer.ResultCollection.Count; i++)
{
string extracted = resultContainer.ResultCollection[i].ToString();
// Save to disk, process, or analyze as needed
File.WriteAllText($@"C:\PDFs\out\{Path.GetFileNameWithoutExtension(files[i])}.txt", extracted);
}
}
2. 사용 사례를 기반으로 추출 모드를 선택하십시오
- Pure를 사용하여 테이블과 같은 배열 또는 공간 포맷을 사용합니다.
- Plain을 사용하여 순수한 데이터 추출 또는 분석을 수행합니다.
- 처리되지 않은 텍스트를 위해 Raw를 사용합니다.
3. 포스트 프로세스 추출 된 텍스트
추출 후, regex, 텍스트 청소를 적용하거나 다른 서비스 ( 검색, ML 파이프 라인 등)에 결과를 보내십시오.
4. 데이터 파이프라인과 통합 추출
더 넓은 ETL, 보고 또는 문서 관리 작업 흐름의 일환으로 자동 추출 표준 .NET 관행을 사용합니다.
일반적인 도전과 해결책
도전: 복잡한 PDF 구조로 인해 일관되지 않은 출력솔루션: 다른 추출 모드 (순수, 평평, 원료)를 시도하고 결과를 비교합니다.
도전: 배치 추출 속도솔루션: 하나를 사용하십시오 TextExtractor
예를 들어, 최상의 성능을 위해 한 번에 여러 파일을 처리합니다.
도전: 특수 캐릭터 또는 암호화 문제솔루션: 최소한의 포맷을 위해 평평 모드를 사용하고, 필요한 경우 사용자 지정 링 처리를 적용합니다.
성과와 최고의 관행
- 모든 세 가지 추출 모드를 테스트하여 문서 유형에 대한 최적의 결과를 결정합니다.
- 배치 작업 전에 원본 PDF를 저장
- 배치 작업에서 생산 파일 이름 및 조직을 처리
- 강도를 위해 통합 오류 처리 및 로그링
완전한 실행 예제
using Aspose.Pdf.Plugins;
using System;
using System.IO;
class Program
{
static void Main()
{
using (var extractor = new TextExtractor())
{
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Plain);
options.AddInput(new FileDataSource(@"C:\PDFs\input.pdf"));
var resultContainer = extractor.Process(options);
string textExtracted = resultContainer.ResultCollection[0].ToString();
File.WriteAllText(@"C:\PDFs\output.txt", textExtracted);
}
}
}
결론
Aspose.PDF Text Extractor for .NET은 여러 형식의 텍스트 추출을위한 강력하고 유연한 도구를 제공합니다 - 데이터 처리, 아카이브 또는 분석에 적합합니다.