Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
PDF에서 테이블을 추출하는 것은 간단한 작업이 아닙니다. 테이블은 다양한 방식으로 생성될 수 있기 때문입니다.
Aspose.PDF for .NET은 테이블을 쉽게 검색할 수 있는 도구를 제공합니다. 테이블 데이터를 추출하려면 다음 단계를 수행해야 합니다:
TableList
는 AbsorbedTable의 목록입니다. 데이터를 가져오려면 TableList
를 반복하고 RowList 및 CellList를 처리합니다.다음 코드 스니펫은 Aspose.PDF.Drawing 라이브러리와 함께 작동합니다.
다음 예제는 모든 페이지에서 테이블을 추출하는 방법을 보여줍니다:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractTable()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Tables();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
foreach (var page in document.Pages)
{
Aspose.Pdf.TableAbsorber absorber = new Aspose.Pdf.TableAbsorber();
absorber.Visit(page);
foreach (var table in absorber.TableList)
{
Console.WriteLine("Table");
foreach (var row in table.RowList)
{
foreach (var cell in row.CellList)
{
foreach (var fragment in cell.TextFragments)
{
var sb = new StringBuilder();
foreach (var seg in fragment.Segments)
{
sb.Append(seg.Text);
}
Console.Write($"{sb.ToString()}|");
}
}
Console.WriteLine();
}
}
}
}
}
각 흡수된 테이블에는 페이지에서 테이블의 위치를 설명하는 Rectangle 속성이 있습니다.
특정 지역에 위치한 테이블을 추출해야 하는 경우 특정 좌표로 작업해야 합니다.
다음 코드 스니펫은 Aspose.PDF.Drawing 라이브러리와 함께 작동합니다.
다음 예제는 사각형 주석으로 표시된 테이블을 추출하는 방법을 보여줍니다:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractMarkedTable()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Tables();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
var page = document.Pages[1];
var squareAnnotation =
page.Annotations.FirstOrDefault(ann => ann.AnnotationType == Annotations.AnnotationType.Square)
as Aspose.Pdf.Annotations.SquareAnnotation;
var absorber = new Aspose.Pdf.Text.TableAbsorber();
absorber.Visit(page);
foreach (var table in absorber.TableList)
{
var isInRegion = (squareAnnotation.Rect.LLX < table.Rectangle.LLX) &&
(squareAnnotation.Rect.LLY < table.Rectangle.LLY) &&
(squareAnnotation.Rect.URX > table.Rectangle.URX) &&
(squareAnnotation.Rect.URY > table.Rectangle.URY);
if (isInRegion)
{
foreach (var row in table.RowList)
{
foreach (var cell in row.CellList)
{
foreach (var fragment in cell.TextFragments)
{
var sb = new StringBuilder();
foreach (var seg in fragment.Segments)
{
sb.Append(seg.Text);
}
var text = sb.ToString();
Console.Write($"{text}|");
}
}
Console.WriteLine();
}
}
}
}
}
다음 예제는 테이블을 추출하고 CSV 파일로 저장하는 방법을 보여줍니다. PDF를 Excel 스프레드시트로 변환하는 방법에 대한 내용은 PDF를 Excel로 변환 기사를 참조하십시오.
다음 코드 스니펫은 Aspose.PDF.Drawing 라이브러리와 함께 작동합니다.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractTableSaveExcel()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Tables();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
// Instantiate ExcelSave Option object
Aspose.Pdf.ExcelSaveOptions excelSave = new Aspose.Pdf.ExcelSaveOptions { Format = ExcelSaveOptions.ExcelFormat.CSV };
// Save the output in XLS format
document.Save(dataDir + "ExtractTableSaveXLS_out.xlsx", excelSave);
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.