Extraire des données des tables PDF en C# et VB.NET (Une solution simple)
Tags: csharp, pdf, table, dotnet
Published: 2023-06-29 08:24:17

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](https://www.e-iceblue.com/Introduce/pdf-for-net-introduce.html). 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](https://www.nuget.org/packages/Spire.PDF/) 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](https://www.e-iceblue.com/Download/download-pdf-for-net-now.html) 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 :
```csharp
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 :
```vb
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](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/How-to-Generate-PDF-Table-in-C-/VB.NET.html)
[Fusionner des fichiers PDF en C# et VB.NET](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Merge-PDF-Files-with-New-Method-in-C.html)
[Diviser un fichier PDF en C# et VB.NET](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/NET-Split-PDF-Simply-Split-PDF-Document-to-Multiple-Files-with-C-VB.NET.html)