Extraire des tableaux PDF

PDF est devenu l’un des formats de document les plus largement utilisés dans une multitude de domaines. Dans divers cas, il est utilisé pour générer des factures où les données semblent être sous forme de tableau. Dans de tels cas, vous devrez peut-être analyser le PDF pour lire les données des tables par programmation. Pour ce faire, l’article explique comment extraire des données de tableaux PDF à l’aide de C#.

API C# pour extraire des tableaux d’un PDF

Afin d’extraire les données des tableaux dans les fichiers PDF, nous utiliserons Aspose.PDF for .NET. Il s’agit d’une API puissante qui fournit un large éventail de fonctionnalités de manipulation de PDF. Vous pouvez soit télécharger l’API ou l’installer à l’aide de NuGet.

PM> Install-Package Aspose.PDF

Extraire des données de tableaux PDF en C#

Voici les étapes à suivre pour extraire des données de tables dans un PDF à l’aide de C#.

L’exemple de code suivant montre comment extraire du texte d’un tableau PDF en C#.

// Charger le document PDF source
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Boucle à travers les pages                      
foreach (var page in pdfDocument.Pages)
{
	// Créez un absorbeur de table et visitez la page
	Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
	absorber.Visit(page);
	
	// Boucle à travers chaque table absorbée 
	foreach (AbsorbedTable table in absorber.TableList)
	{
		Console.WriteLine("Table");
		
		// Boucle sur chaque ligne du tableau
		foreach (AbsorbedRow row in table.RowList)
		{
			// Boucle à travers chaque cellule de la ligne
			foreach (AbsorbedCell cell in row.CellList)
			{       
				// Boucle à travers les fragments de texte
				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();
		}
	}
}

Extraire le tableau d’une zone spécifique de la page

Voici les étapes pour extraire un tableau d’une partie spécifique de la page dans un PDF à l’aide de C#.

L’exemple de code suivant montre comment extraire un tableau d’une région spécifique de la page PDF.

// Charger le document PDF source
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document("sample.pdf"); 

// Sélectionnez la page et extrayez son annotation carrée
var page = pdfDocument.Pages[1];
var squareAnnotation =
	page.Annotations.FirstOrDefault(ann => ann.AnnotationType == Annotations.AnnotationType.Square)
	as Annotations.SquareAnnotation;

// Créez un absorbeur de table et visitez la page
Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
absorber.Visit(page);

// Boucle à travers chaque table absorbée dans la 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)
	{
		// Boucle sur chaque ligne du tableau
		foreach (AbsorbedRow row in table.RowList)
		{
			// Boucle à travers chaque cellule de la ligne
			foreach (AbsorbedCell cell in row.CellList)
			{
				// Parcourez les fragments de texte et imprimez le texte
				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();
		}
	}
}

Obtenez une licence gratuite

Vous pouvez utiliser Aspose.PDF for .NET sans limitation d’évaluation à l’aide d’une licence temporaire.

Conclusion

Dans cet article, vous avez appris à extraire des données de tables dans un PDF à l’aide de C#. De plus, vous avez vu comment extraire un tableau d’une région spécifique de la page en PDF. Vous pouvez en savoir plus sur l’API C# PDF à l’aide de la documentation. Vous pouvez également poster vos questions sur notre forum.

Voir également