DEV Community

Liam Anderson
Liam Anderson

Posted on

Extraire des données des tables PDF en C# et VB.NET (Une solution simple)

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());
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)