Passer au contenu du pied de page
UTILISATION DE IRONPDF

Comment lire des données à partir d'un PDF dans ASP.NET Core

Travailler avec des fichiers PDF dans des applications .NET Core peut être plus compliqué qu'il n'y paraît. Vous pourriez avoir besoin d'extraire du texte de factures téléchargées, de récupérer des données de formulaire provenant d'enquêtes ou d'analyser des tableaux pour votre base de données. J'ai vu de nombreux projets ralentis parce que les développeurs utilisaient des bibliothèques trop complexes. C'est là qu'IronPDF intervient. Il vous permet de lire et traiter des documents PDF sans vous battre avec des dépendances compliquées ni écrire des tonnes de code de parsing personnalisé.

Que vous manipuliez du texte simple, des signatures numériques ou des données structurées, IronPDF facilite le processus. Ce guide vous montre comment lire des données à partir d'un fichier PDF dans ASP.NET, gérer IFormFile, travailler avec des tableaux d'octets et même retourner des fichiers à l'utilisateur ou les rendre sous forme de chaîne HTML. Vous pouvez également l'intégrer dans votre solution, afficher les résultats dans le navigateur ou les stocker dans une base de données.

Comment configurer IronPDF dans ASP.NET Core ?

Commencer avec IronPDF dans votre projet ASP.NET Core ne prend que quelques minutes. Installez le package NuGet IronPDF via la console du gestionnaire de packages NuGet avec la commande suivante :

Install-Package IronPdf

Ou via le .NET CLI :

dotnet add package IronPdf

Une fois installé, ajoutez l'espace de noms IronPDF à votre classe Program, votre contrôleur ou vos services :

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

For detailed installation options including Docker deployment, Azure setup, and additional information, check the comprehensive documentation.

Comment extraire du texte des fichiers PDF ?

La méthode ExtractAllText d'IronPDF fournit un accès instantané à tout le contenu textuel d'un document PDF. Cette méthode gère divers encodages de texte et maintient l'ordre de lecture du document original, garantissant une extraction précise des données des fichiers PDF dans les applications ASP.NET Core.

// Load a PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text
string allText = pdf.ExtractAllText();
// Extract text from specific page (0-indexed)
string pageText = pdf.ExtractTextFromPage(0); // current page
// Load a PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text
string allText = pdf.ExtractAllText();
// Extract text from specific page (0-indexed)
string pageText = pdf.ExtractTextFromPage(0); // current page
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La méthode ExtractAllText renvoie une chaîne contenant tout le texte lisible du PDF, en préservant les sauts de ligne et les espacements. Pour une extraction spécifique à une page, ExtractTextFromPage permet de cibler des pages individuelles en utilisant un indexage basé sur zéro. Cette approche fonctionne à merveille avec les PDF chiffrés lorsque vous fournissez le bon mot de passe.

Voici une implémentation pratique du contrôleur ASP.NET Core qui démontre comment lire des données à partir de fichiers PDF en utilisant ce PDF :

Exemple de code

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpPost("extract-text")]
    public IActionResult ExtractText(IFormFile pdfFile)
    {
        using var stream = new MemoryStream();
        pdfFile.CopyTo(stream);
        var pdf = new PdfDocument(stream.ToArray());
        var extractedText = pdf.ExtractAllText();
        return Ok(new { text = extractedText });
    }
}
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpPost("extract-text")]
    public IActionResult ExtractText(IFormFile pdfFile)
    {
        using var stream = new MemoryStream();
        pdfFile.CopyTo(stream);
        var pdf = new PdfDocument(stream.ToArray());
        var extractedText = pdf.ExtractAllText();
        return Ok(new { text = extractedText });
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code d'exemple gère efficacement les fichiers PDF téléchargés. Le paramètre IFormFile fonctionne avec les Razor Pages ou les contrôleurs MVC, tandis que le MemoryStream garantit un traitement fluide sans créer de fichiers temporaires, améliorant ainsi le temps de réponse. Les développeurs peuvent télécharger, enregistrer ou traiter le texte extrait pour le stockage dans une base de données, la génération de rapports ou l'affichage de contenu dans le navigateur.

Comment lire les données de formulaire PDF ?

Les formulaires PDF contiennent des champs interactifs que les utilisateurs remplissent. IronPDF simplifies extracting this form data through its comprehensive forms API, supporting all standard AcroForm field types. You can easily extract all form field data, including text boxes, checkboxes, and content type details.

La réponse peut alors être enregistrée dans une base de données, retournée à l'utilisateur, ou intégrée dans votre flux de travail de l'application ASP.NET. Le code suivant démontre comment faire justement cela :

[HttpPost("extract-form")]
        public IActionResult ExtractForm([FromForm] IFormFile pdfFile)
        {
            if (pdfFile == null || pdfFile.Length == 0)
            {
                return BadRequest("No PDF file uploaded.");
            }
            using var stream = new MemoryStream();
            pdfFile.CopyTo(stream);
            var pdf = new PdfDocument(stream.ToArray());
            var formData = new Dictionary<string, string>();
            if (pdf.Form != null)
            {
                foreach (var field in pdf.Form)
                {
                    formData[field.Name] = field.Value;
                }
            }
            return Ok(new { formFields = formData });
        }
[HttpPost("extract-form")]
        public IActionResult ExtractForm([FromForm] IFormFile pdfFile)
        {
            if (pdfFile == null || pdfFile.Length == 0)
            {
                return BadRequest("No PDF file uploaded.");
            }
            using var stream = new MemoryStream();
            pdfFile.CopyTo(stream);
            var pdf = new PdfDocument(stream.ToArray());
            var formData = new Dictionary<string, string>();
            if (pdf.Form != null)
            {
                foreach (var field in pdf.Form)
                {
                    formData[field.Name] = field.Value;
                }
            }
            return Ok(new { formFields = formData });
        }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Le point de terminaison ExtractForm utilise la propriété Form de PdfDocument pour lire les champs interactifs d'un PDF téléchargé. Chaque champ a un Nom et une Valeur, qui sont collectés dans un dictionnaire et retournés sous forme de JSON. Cela permet de capturer facilement les données de zones de texte, cases à cocher et autres entrées, permettant aux soumissions de formulaire PDF d'être traitées et intégrées directement dans vos applications ou bases de données.

Sortie

Comment lire des données à partir d'un PDF dans ASP.NET Core : Figure 3 - HTTP Postman

Comment extraire les données de tableau des documents PDF ?

Les tableaux dans les PDF sont essentiellement du texte formaté, nécessitant une logique de parsing pour extraire des données structurées. IronPDF extrait le texte tout en préservant les espacements, que vous pouvez ensuite analyser pour lire les données d'un fichier PDF dans ASP.NET :

[HttpPost("extract-table")]
public IActionResult ExtractTable([FromForm] IFormFile pdfFile)
{
    if (pdfFile == null || pdfFile.Length == 0)
        return BadRequest("No PDF file uploaded.");
    using var memoryStream = new MemoryStream();
    pdfFile.CopyTo(memoryStream);
    // Load PDF from byte array
    var pdf = new PdfDocument(memoryStream.ToArray());
    // Extract all text
    string text = pdf.ExtractAllText();
    // Split text into lines (rows)
    string[] lines = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
    var tableData = new List<string[]>();
    foreach (string line in lines)
    {
        // Split line into columns using tab character
        string[] columns = line
            .Split('\t')
            .Where(c => !string.IsNullOrWhiteSpace(c))
            .ToArray();
        if (columns.Length > 0)
            tableData.Add(columns);
    }
    var table = tableData.Select(r => string.Join(" | ", r)).ToList();
    return Ok(new { Table = table });
}
[HttpPost("extract-table")]
public IActionResult ExtractTable([FromForm] IFormFile pdfFile)
{
    if (pdfFile == null || pdfFile.Length == 0)
        return BadRequest("No PDF file uploaded.");
    using var memoryStream = new MemoryStream();
    pdfFile.CopyTo(memoryStream);
    // Load PDF from byte array
    var pdf = new PdfDocument(memoryStream.ToArray());
    // Extract all text
    string text = pdf.ExtractAllText();
    // Split text into lines (rows)
    string[] lines = text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
    var tableData = new List<string[]>();
    foreach (string line in lines)
    {
        // Split line into columns using tab character
        string[] columns = line
            .Split('\t')
            .Where(c => !string.IsNullOrWhiteSpace(c))
            .ToArray();
        if (columns.Length > 0)
            tableData.Add(columns);
    }
    var table = tableData.Select(r => string.Join(" | ", r)).ToList();
    return Ok(new { Table = table });
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ce code extrait le texte et le divise en lignes de tableau potentielles en fonction de motifs d'espacement. Pour des tableaux plus complexes, vous pourriez avoir besoin d'identifier les limites des tableaux en utilisant des mots-clés ou d'implémenter une logique de parsing plus sophistiquée en fonction de la structure spécifique de votre PDF.

Ce résultat peut être téléchargé, affiché dans le navigateur ou traité pour obtenir des informations supplémentaires. Vous pouvez intégrer un formatage CSS ou un rendu de chaîne HTML pour afficher dynamiquement des tables dans votre solution.

Sortie

Comment lire des données dans un PDF dans ASP.NET Core : Figure 4

Comment gérer les fichiers PDF téléchargés dans ASP.NET Core ?

Le traitement des PDF téléchargés requiert la conversion de l'IFormFile vers un format qu'IronPDF peut lire. This approach works seamlessly with Razor Pages and MVC controllers:

[HttpPost("process-upload")]
        public async Task<IActionResult> ProcessPdf([FromForm] IFormFile file)
        {
            if (file == null || file.Length == 0)
                return BadRequest("No PDF file uploaded.");
            using var ms = new MemoryStream();
            await file.CopyToAsync(ms);
            // Load PDF from byte array
            var pdf = new PdfDocument(ms.ToArray());
            // Extract text and page count
            var text = pdf.ExtractAllText();
            var pageCount = pdf.PageCount;
            return Ok(new
            {
                text = text,
                pages = pageCount
            });
        }
[HttpPost("process-upload")]
        public async Task<IActionResult> ProcessPdf([FromForm] IFormFile file)
        {
            if (file == null || file.Length == 0)
                return BadRequest("No PDF file uploaded.");
            using var ms = new MemoryStream();
            await file.CopyToAsync(ms);
            // Load PDF from byte array
            var pdf = new PdfDocument(ms.ToArray());
            // Extract text and page count
            var text = pdf.ExtractAllText();
            var pageCount = pdf.PageCount;
            return Ok(new
            {
                text = text,
                pages = pageCount
            });
        }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Cette tâche asynchrone garantit un traitement non bloquant et fonctionne avec l'objet sender, eventargs e et les bibliothèques .NET standard. Utilisez ReturnFile avec des en-têtes Content-Disposition pour permettre aux utilisateurs de télécharger des fichiers PDF traités en toute sécurité. Pour une sécurité supplémentaire, pensez à implémenter une validation de fichier avant le traitement.

Conclusion

IronPDF simplifie la lecture, l'extraction, le traitement et l'enregistrement de documents PDF dans ASP.NET Core et d'autres applications .NET Core. Que vous travailliez avec des formulaires, des tableaux, du texte brut ou des signatures numériques, cette bibliothèque .NET simplifie des tâches qui prennent normalement des heures en quelques lignes de code. Vous pouvez créer, convertir, accéder et afficher des résultats sous forme de HTML, dans le navigateur ou même en formats d'image.

Commencez avec un essai gratuit pour explorer toutes les capacités d'IronPDF dans votre ASP.NET Core. Vous pouvez construire et tester vos flux de travail d'extraction PDF avant de vous engager à une licence. Pour la production, IronPDF propose des options flexibles adaptées aux développeurs individuels ou aux grandes solutions. Honnêtement, utiliser IronPDF est l'une des manières les plus rapides que j'ai trouvées pour gérer des fichiers PDF dans ASP.NET Core sans les tracas habituels.

Questions Fréquemment Posées

Quels défis peuvent survenir lors de la manipulation de fichiers PDF dans les applications .NET Core ?

Travailler avec des fichiers PDF dans .NET Core peut être délicat en raison de la nécessité d'extraire du texte, de récupérer des données de formulaires, ou d'analyser des tables sans bibliothèques trop complexes.

Comment IronPDF peut-il aider à simplifier la lecture de données à partir de fichiers PDF dans ASP.NET ?

IronPDF simplifie la lecture et le traitement des documents PDF en éliminant le besoin de dépendances chaotiques ou de code de parsing personnalisé étendu.

Pourquoi est-il important d'éviter les bibliothèques trop complexes lors de la manipulation des PDF ?

L'utilisation de bibliothèques trop complexes peut ralentir les projets et augmenter le temps de développement, alors que des solutions plus simples comme IronPDF simplifient le processus.

Quels types de données IronPDF peut-il extraire des fichiers PDF ?

IronPDF peut extraire du texte, des données de formulaires et des tables à partir de fichiers PDF, ce qui le rend polyvalent pour divers besoins de gestion des données.

IronPDF peut-il être utilisé pour traiter des factures téléchargées dans les applications ASP.NET ?

Oui, IronPDF peut lire et traiter efficacement le texte des factures téléchargées dans les applications ASP.NET.

Est-il nécessaire d'écrire du code de parsing personnalisé lors de l'utilisation d'IronPDF ?

Non, IronPDF vous permet de traiter les documents PDF sans avoir besoin de code de parsing personnalisé étendu.

Quels sont les avantages d'utiliser IronPDF dans les applications .NET Core ?

IronPDF fournit un moyen simple de lire et traiter les fichiers PDF, améliorant les capacités de gestion des données sans dépendances complexes.

.NET 10 — IronPDF est-il entièrement compatible avec cette version ?

Oui. IronPDF est conçu pour être entièrement compatible avec .NET 10 (ainsi qu'avec .NET 9, 8, 7, 6, 5, Core, Standard et Framework 4.6.2+), vous assurant ainsi de pouvoir utiliser toutes ses fonctionnalités de lecture et d'écriture de PDF sans solutions de contournement particulières sur la dernière plateforme .NET.

IronPDF prend-il en charge les dernières API de .NET 10 pour la lecture de contenu PDF en flux continu ?

Oui. Sous .NET 10, IronPDF peut traiter les données PDF à partir de tableaux d'octets ou de flux mémoire (grâce à des API comme Stream et MemoryStream), ce qui permet de lire les PDF sans enregistrer de fichiers temporaires. Il est ainsi parfaitement adapté aux serveurs hautes performances et au chargement ou au traitement de données PDF via des API web.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite