.NET에서 PDF에서 구조화 된 데이터와 테이블을 추출하는 방법
.NET에서 PDF에서 구조화 된 데이터와 테이블을 추출하는 방법
PDF에서 테이블과 구조화 된 데이터를 추출하는 것은 분석가, 회계사 및 보고서 또는 재무 보고서를 사용하는 모든 사람들에게 일반적인 작업입니다. .NET의 Aspose.PDF.Plugin은 깔끔한 텍스트, CSV 또는 JSON과 같은 표를 탐지, 퍼싱 및 수출하기위한 프로그래밍 옵션을 제공합니다.
PDF 텍스트에서 테이블을 식별
- 간단한 PDF: 명확한 세포 경계 (tab, 공간 또는 라인 측정기)가있는 테이블은 추출하기 쉽습니다.
- Visual Inspection: 원료 또는 순수한 텍스트를 추출하고 일관된 라인 / 열 패턴을 검사합니다.
- Heuristic Parsing: 추출 된 텍스트에서 가능한 라인과 열을 식별하기 위해 논리 (예를 들어, 정기적 인 표현, 측정)를 사용합니다.
예: CSV로 테이블 수출
using Aspose.Pdf.Plugins;
using System.IO;
string input = @"C:\Docs\financial-report.pdf";
var extractor = new TextExtractor();
var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
options.AddInput(new FileDataSource(input));
string extracted = extractor.Process(options).ResultCollection[0].ToString();
// Simple parsing: Assume rows separated by '\n', columns by tabs or spaces
var rows = extracted.Split('\n');
using (var writer = new StreamWriter(@"C:\Docs\extracted-table.csv"))
{
foreach (var row in rows)
{
var columns = row.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries);
writer.WriteLine(string.Join(",", columns));
}
}예: JSON으로 수출 테이블
using System.Text.Json;
var table = rows
.Where(r => r.Trim().Length > 0)
.Select(r => r.Split(new[] {'\t', ' '}, StringSplitOptions.RemoveEmptyEntries))
.ToList();
File.WriteAllText(@"C:\Docs\extracted-table.json", JsonSerializer.Serialize(table));제한 및 고급 팁
- 융합/스파네드 세포: 대부분의 프로그래밍 추출은 신뢰할 수 없으며 합성 또는 멀티 롤 셀을 감지 할 수 있습니다; 수동 검토 또는 사용자 지정 논리가 필요할 수도 있습니다.
- 복잡한 테이블: 이미지, 그래픽 또는 불규칙한 레이아웃을 가진 표에는 고급 퍼싱 또는 시각적 탭 추출 도구가 필요합니다.
- 정확성: 추출은 간단하고 잘 구조화 된 테이블로 최선을 다합니다; 항상 결과를 검토하고 데이터에 대한 파싱 논리를 조정합니다.
사용 사례
- 금융 분석 및 감사 (수출 리더, 지출 테이블)
- 설문 조사 및 피드백 데이터 (파르세 대량 응답 테이블)
- 유산 PDF에서 데이터베이스 또는 Excel로의 데이터 이동
자주 묻는 질문들
**Q: 합병된 세포가 자동으로 감지되거나 처리될 수 있습니까?**A: 신뢰할 수 없음 - 혼합/분열된 세포는 일반적으로 추출 후 수동 수정 또는 시각 검토가 필요합니다.
**Q : 데이터 추출은 항상 100 % 정확합니까?**A: 아니오 - 결과는 테이블 구조, 포맷 및 PDF에 대하여 항상 추출 된 테이블을 검토하고 필요한 경우 사용자 지정 규칙이나 스크립트를 사용하여 청소합니다.
**Q : 테이블 추출을위한 최고의 모드는 무엇입니까?**A: 구조화 된 테이블을위한 순수 모드로 시작합니다. 원료 모드는 데이터 광산 또는 사용자 지정 히어리스트에 도움이 될 수 있습니다.
프로 팁: 추출을 반복하려면 각 보고서 템플릿에 대한 파싱 논리를 정리하십시오. CSV에 대하여 그리고 JSON 최대한의 유연성을 위해