Extrahujte tabulky PDF

PDF se stal jedním z nejpoužívanějších formátů dokumentů v mnoha oblastech. V různých případech se používá ke generování faktur, kde se údaje zdají být v tabulkové formě. V takových případech možná budete muset analyzovat PDF, abyste mohli číst data z tabulek programově. Chcete-li toho dosáhnout, článek popisuje, jak extrahovat data z tabulek PDF pomocí C#.

Knihovna C# pro extrahování tabulek z PDF

K extrahování dat z tabulek v souborech PDF použijeme Aspose.PDF for .NET. Je to výkonná knihovna, která poskytuje širokou škálu funkcí pro manipulaci s PDF. Knihovnu si můžete buď stáhnout, nebo ji nainstalovat pomocí NuGet.

PM> Install-Package Aspose.PDF

Extrahujte data z tabulek PDF v C#

Následují kroky k extrahování dat z tabulek v PDF pomocí C#.

Následující ukázka kódu ukazuje, jak extrahovat text z tabulky PDF v C#.

// Načíst zdrojový dokument PDF
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Procházejte stránky                      
foreach (var page in pdfDocument.Pages)
{
	// Vytvořte absorbér tabulky a navštivte stránku
	Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
	absorber.Visit(page);
	
	// Projděte každý absorbovaný stůl 
	foreach (AbsorbedTable table in absorber.TableList)
	{
		Console.WriteLine("Table");
		
		// Procházejte každý řádek v tabulce
		foreach (AbsorbedRow row in table.RowList)
		{
			// Procházejte každou buňku v řádku
			foreach (AbsorbedCell cell in row.CellList)
			{       
				// Procházejte fragmenty textu
				foreach (TextFragment fragment in cell.TextFragments)
				{
					var sb = new StringBuilder();
					foreach (TextSegment seg in fragment.Segments)
						sb.Append(seg.Text);
					Console.Write($"{sb.ToString()}|");
				}                           
			}
			Console.WriteLine();
		}
	}
}

Extrahujte tabulku ze specifické oblasti PDF

Následují kroky k extrahování tabulky z konkrétní části stránky v PDF pomocí C#.

Následující ukázka kódu ukazuje, jak extrahovat tabulku z určité oblasti stránky PDF.

// Načíst zdrojový dokument PDF
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Vyberte stránku a extrahujte její čtvercovou anotaci
var page = pdfDocument.Pages[1];
var squareAnnotation =
	page.Annotations.FirstOrDefault(ann => ann.AnnotationType == Annotations.AnnotationType.Square)
	as Annotations.SquareAnnotation;

// Vytvořte absorbér tabulky a navštivte stránku
Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
absorber.Visit(page);

// Projděte každou absorbovanou tabulku v seznamu 
foreach (AbsorbedTable 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)
	{
		// Procházejte každý řádek tabulky
		foreach (AbsorbedRow row in table.RowList)
		{
			// Procházejte každou buňku v řádku
			foreach (AbsorbedCell cell in row.CellList)
			{
				// Procházejte fragmenty textu a vytiskněte text
				foreach (TextFragment fragment in cell.TextFragments)
				{
					var sb = new StringBuilder();
					foreach (TextSegment seg in fragment.Segments)
					{
						sb.Append(seg.Text);
					}
					var text = sb.ToString();
					Console.Write($"{text}|");
				}
			}
			Console.WriteLine();
		}
	}
}

Bezplatná knihovna C# PDF pro extrahování tabulek

Můžete získat bezplatnou dočasnou licenci a extrahovat data z tabulek v souborech PDF bez jakýchkoli omezení.

Prozkoumejte knihovnu C# PDF

Více o knihovně C# PDF můžete prozkoumat pomocí dokumentace. Své dotazy můžete také zveřejňovat na našem fóru.

Závěr

V tomto článku jste se naučili extrahovat data z tabulek v PDF pomocí C#. Dále jste viděli, jak extrahovat tabulku z určité oblasti stránky v PDF. Podrobný průvodce a ukázka kódu ukázaly, jak snadné je zpracovat tabulku PDF a extrahovat její data.

Viz také