Les rapports financiers, les relevés et les factures sont souvent présentés sous forme de fichiers PDF. Extraire des données à partir des tables de ces PDF permet d'effectuer une analyse approfondie, telle que des calculs, l'identification de tendances et la prise de décisions éclairées pour les entreprises. Dans cet article, nous expliquerons comment extraire des données des tables PDF en utilisant C# et VB.NET.
Bibliothèque .NET pour extraire des données des tables PDF
Pour extraire des données des tables PDF, cet article utilisera une bibliothèque tierce appelée Spire.PDF for .NET. Il s'agit d'une bibliothèque facile à utiliser pour créer, manipuler, convertir et imprimer des fichiers PDF.
Vous pouvez facilement installer Spire.PDF for .NET via NuGet en suivant ces étapes :
- Créez ou ouvrez un projet dans Visual Studio.
- Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et sélectionnez "Manage NuGet Packages".
- Dans l'onglet "Browse", recherchez "Spire.PDF".
- Sélectionnez "Spire.PDF" dans les résultats de la recherche et cliquez sur le bouton "Install".
Alternativement, vous pouvez également télécharger Spire.PDF for .NET depuis son site officiel, extraire le package, puis ajouter les fichiers DLL du dossier Bin à votre projet en tant que références.
Comment extraire des données des tables PDF en C# et VB.NET
Les tables d'un fichier PDF peuvent être facilement extraites à l'aide de la méthode PdfTableExtractor.ExtractTable() fournie par Spire.PDF for .NET.
Le code suivant montre comment extraire des tables d'un fichier PDF et enregistrer les données extraites dans un fichier texte en utilisant C# et la bibliothèque Spire.PDF :
using System.IO;
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Utilities;
namespace ExtractPdfTable
{
class Program
{
static void Main(string[] args)
{
//Créer un objet PdfDocument
PdfDocument doc = new PdfDocument();
//Charger le fichier PDF d'exemple
doc.LoadFromFile(@"C:\Users\Administrator\Desktop\table.pdf");
//Créer un objet StringBuilder
StringBuilder builder = new StringBuilder();
//Initialiser une instance de la classe PdfTableExtractor
PdfTableExtractor extractor = new PdfTableExtractor(doc);
//Déclarer un tableau PdfTable
PdfTable[] tableList = null;
//Parcourir les pages
for (int pageIndex = 0; pageIndex < doc.Pages.Count; pageIndex++)
{
//Extraire les tables d'une page spécifique
tableList = extractor.ExtractTable(pageIndex);
//Vérifier si la liste des tables n'est pas null
if (tableList != null && tableList.Length > 0)
{
//Parcourir les tables dans la liste
foreach (PdfTable table in tableList)
{
//Obtenir le nombre de lignes et de colonnes d'une table spécifique
int row = table.GetRowCount();
int column = table.GetColumnCount();
//Parcourir les lignes et les colonnes
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
//Obtenir le texte de la cellule spécifique
string text = table.GetText(i, j);
//Ajouter le texte au StringBuilder
builder.Append(text + " ");
}
builder.Append("\r\n");
}
}
}
}
//Écrire dans un fichier .txt
File.WriteAllText("Table.txt", builder.ToString());
}
}
}
Le code suivant montre comment extraire des tables d'un fichier PDF et enregistrer les données extraites dans un fichier texte en utilisant VB.NET et la bibliothèque Spire.PDF :
Imports System.IO
Imports System.Text
Imports Spire.Pdf
Imports Spire.Pdf.Utilities
Namespace ExtractPdfTable
Class Program
Shared Sub Main(ByVal args() As String)
'Créer un objet PdfDocument
Dim doc As PdfDocument = New PdfDocument()
'Charger le fichier PDF d'exemple
doc.LoadFromFile("C:\Users\Administrator\Desktop\table.pdf")
'Créer un objet StringBuilder
Dim builder As StringBuilder = New StringBuilder()
'Initialiser une instance de la classe PdfTableExtractor
Dim extractor As PdfTableExtractor = New PdfTableExtractor(doc)
'Déclarer un tableau PdfTable
Dim tableList() As PdfTable = Nothing
'Parcourir les pages
Dim pageIndex As Integer
For pageIndex = 0 To doc.Pages.Count- 1 Step pageIndex + 1
'Extraire les tables d'une page spécifique
tableList = extractor.ExtractTable(pageIndex)
'Vérifier si la liste des tables n'est pas null
If tableList <> Nothing And tableList.Length > 0 Then
'Parcourir les tables dans la liste
Dim table As PdfTable
For Each table In tableList
'Obtenir le nombre de lignes et de colonnes d'une table spécifique
Dim row As Integer = table.GetRowCount()
Dim column As Integer = table.GetColumnCount()
'Parcourir les lignes et les colonnes
Dim i As Integer
For i = 0 To row- 1 Step i + 1
Dim j As Integer
For j = 0 To column- 1 Step j + 1
'Obtenir le texte de la cellule spécifique
Dim text As String = table.GetText(i,j)
'Ajouter le texte au StringBuilder
builder.Append(text + " ")
Next
builder.Append("\r\n")
Next
Next
End If
Next
'Écrire dans un fichier .txt
File.WriteAllText("Table.txt", builder.ToString())
End Sub
End Class
End Namespace
Conclusion
Extraire des données des tables dans les fichiers PDF peut être une tâche complexe, surtout lorsque les tables sont complexes et contiennent une grande quantité de données. Extraire manuellement les données des tables dans les PDF peut être fastidieux et sujet aux erreurs. En utilisant les extraits de code décrits dans cet article, vous pouvez automatiser cette fonctionnalité rapidement et précisément avec C# et VB.NET.
Articles connexes
Créer une table dans un PDF en C# et VB.NET
Fusionner des fichiers PDF en C# et VB.NET
Diviser un fichier PDF en C# et VB.NET
Top comments (0)