PDF-Tabellen extrahieren

PDF ist zu einem der am häufigsten verwendeten Dokumentenformate in einer Vielzahl von Bereichen geworden. In verschiedenen Fällen wird es verwendet, um Rechnungen zu erstellen, bei denen die Daten in tabellarischer Form erscheinen. In solchen Fällen müssen Sie möglicherweise die PDF Datei parsen, um Daten programmgesteuert aus den Tabellen zu lesen. Um dies zu erreichen, behandelt der Artikel das Extrahieren von Daten aus PDF-Tabellen mit C#.

C# API zum Extrahieren von Tabellen aus PDF

Um Daten aus den Tabellen in PDF Dateien zu extrahieren, verwenden wir Aspose.PDF for .NET. Es ist eine leistungsstarke API, die eine breite Palette von PDF-Manipulationsfunktionen bietet. Sie können die API entweder herunterladen oder sie mit NuGet installieren.

PM> Install-Package Aspose.PDF

Daten aus PDF-Tabellen in C# extrahieren

Im Folgenden sind die Schritte zum Extrahieren von Daten aus Tabellen in einer PDF Datei mit C# aufgeführt.

Das folgende Codebeispiel zeigt, wie Text aus einer PDF-Tabelle in C# extrahiert wird.

// Quell-PDF Dokument laden
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Blättern Sie durch die Seiten                      
foreach (var page in pdfDocument.Pages)
{
	// Erstellen Sie einen Tischabsorber und besuchen Sie die Seite
	Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
	absorber.Visit(page);
	
	// Durchlaufen Sie jede absorbierte Tabelle 
	foreach (AbsorbedTable table in absorber.TableList)
	{
		Console.WriteLine("Table");
		
		// Durchlaufen Sie jede Zeile in der Tabelle
		foreach (AbsorbedRow row in table.RowList)
		{
			// Durchlaufen Sie jede Zelle in der Zeile
			foreach (AbsorbedCell cell in row.CellList)
			{       
				// Durchlaufen Sie die Textfragmente
				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();
		}
	}
}

Tabelle aus einem bestimmten Bereich der Seite extrahieren

Im Folgenden finden Sie die Schritte zum Extrahieren einer Tabelle aus einem bestimmten Teil der Seite in einer PDF Datei mit C#.

Das folgende Codebeispiel zeigt, wie eine Tabelle aus einem bestimmten Bereich der PDF-Seite extrahiert wird.

// Quell-PDF Dokument laden
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Wählen Sie die Seite aus und extrahieren Sie ihre quadratische Anmerkung
var page = pdfDocument.Pages[1];
var squareAnnotation =
	page.Annotations.FirstOrDefault(ann => ann.AnnotationType == Annotations.AnnotationType.Square)
	as Annotations.SquareAnnotation;

// Erstellen Sie Tischabsorber und besuchen Sie die Seite
Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
absorber.Visit(page);

// Durchlaufen Sie jede absorbierte Tabelle in der Liste 
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)
	{
		// Durchlaufen Sie jede Zeile der Tabelle
		foreach (AbsorbedRow row in table.RowList)
		{
			// Durchlaufen Sie jede Zelle in der Zeile
			foreach (AbsorbedCell cell in row.CellList)
			{
				// Durchlaufen Sie die Textfragmente und drucken Sie den Text aus
				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();
		}
	}
}

Holen Sie sich eine kostenlose Lizenz

Sie können Aspose.PDF for .NET ohne Evaluierungseinschränkungen mit einer temporären Lizenz verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit C# Daten aus Tabellen in einer PDF Datei extrahieren. Außerdem haben Sie gesehen, wie Sie eine Tabelle aus einem bestimmten Bereich der Seite in PDF extrahieren. Weitere Informationen zur C# PDF API finden Sie in der Dokumentation. Außerdem können Sie Ihre Fragen in unserem Forum posten.

Siehe auch