OUTILS PDF

Comment afficher des fichiers PDF en C# ?

Chaknith Bin
Chaknith Bin
août 2, 2023
Partager:

Les fichiers PDF sont un format largement utilisé pour l'échange de documents en raison de leur capacité à préserver le formatage sur différentes plateformes. Dans diverses applications, la lecture programmatique du contenu des fichiers PDF devient inestimable.

Dans cet article, nous allons apprendre comment afficher du texte à partir de fichiers PDF en C++ en utilisant l'outil en ligne de commande Xpdf. Xpdf fournit une suite d'utilitaires en ligne de commande et de bibliothèques C++ pour travailler avec des fichiers PDF, y compris l'extraction de texte. En intégrant Xpdf dans notre programme de visualisation de PDF en C++, nous pouvons visualiser efficacement le contenu texte des fichiers PDF et le traiter de manière programmatique.

Xpdf - Bibliothèque C++ et outils en ligne de commande

Xpdf est une suite logicielle open-source qui offre une gamme d'outils et de bibliothèques pour travailler avec des fichiers PDF. Il comprend divers utilitaires en ligne de commande et des bibliothèques C# qui permettent de réaliser des fonctionnalités liées au PDF, telles que l'analyse, le rendu, l'impression et l'extraction de texte. Les outils de ligne de commande de Xpdf permettent également de visualiser les fichiers PDF directement à partir du terminal.

L'un des composants clés de Xpdf est pdftotext, principalement connu pour extraire le contenu textuel des fichiers PDF. Toutefois, lorsqu'il est utilisé en combinaison avec d'autres outils comme pdftops et pdfimages, Xpdf permet aux utilisateurs de visualiser le contenu PDF de différentes manières. L'outil pdftotext s'avère précieux pour extraire des informations textuelles de PDF en vue d'un traitement ou d'une analyse ultérieure, et il offre des options pour spécifier les pages à partir desquelles extraire le texte.

Conditions préalables

Avant de commencer, assurez-vous que vous disposez des conditions préalables suivantes :

  1. Un compilateur C++ tel que GCC ou Clang installé sur votre système. Nous utiliserons Code::Blocks IDE à cette fin.

  2. Outils en ligne de commande Xpdf installés et accessibles depuis la ligne de commande. Téléchargez Xpdf et installez la version adaptée à votre environnement. Ensuite, définissez le répertoire bin de Xpdf dans le chemin des variables d'environnement du système pour y accéder à partir de n'importe quel emplacement du système de fichiers.

Création d'un projet de visualisation de PDF

  1. Ouvrez Code::Blocks : Lancez l'IDE Code::Blocks sur votre ordinateur.

  2. Créer un nouveau projet : Cliquez sur « Fichier » dans le menu du haut et sélectionnez « Nouveau » dans le menu déroulant. Cliquez ensuite sur "Projet" dans le sous-menu.

  3. Choisir le type de projet : Dans la fenêtre "Nouveau à partir d'un modèle", choisissez "Application console", et cliquez sur "Go". Sélectionnez ensuite le langage "C/C++" et cliquez sur "Suivant"

  4. Entrez les détails du projet : Dans le champ « Titre du projet », donnez un nom à votre projet (par exemple, « PDFViewer »). Choisissez l'emplacement où vous souhaitez enregistrer les fichiers du projet et cliquez sur "Suivant"

  5. Sélectionner le compilateur : Choisissez le compilateur que vous souhaitez utiliser pour votre projet. Par défaut, Code::Blocks devrait avoir détecté automatiquement les compilateurs disponibles sur votre système. Si ce n'est pas le cas, sélectionnez un compilateur approprié dans la liste et cliquez sur "Terminer"

Étapes pour afficher le texte d'un fichier PDF en C

Inclure les en-têtes nécessaires

Tout d'abord, ajoutons les fichiers d'en-tête nécessaires à notre fichier main.cpp :

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
C++

Définir les chemins d'entrée et de sortie

string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
C++

Dans la fonction main, nous déclarons deux chaînes de caractères : pdfPath et outputFilePath. pdfPath stocke le chemin vers le fichier PDF d'entrée, et outputFilePath stocke le chemin où le texte extrait sera enregistré en tant que fichier texte brut.

Le fichier d'entrée est le suivant :

Comment afficher des fichiers PDF en C++ : Figure 1

Exécutez la commande pdftotext

string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
C++

Ici, nous avons construit la commande pdftotext en utilisant les variables pdfPath et outputFilePath pour ouvrir le fichier PDF afin de voir son contenu. La fonction system est ensuite appelée pour exécuter la commande, et sa valeur de retour est stockée dans la variable status.

Vérifier l'état de l'extraction de texte

if (status == 0) 
{
    cout << "Text extraction successful." << endl;
} else 
{ 
    cout << "Text extraction failed." << endl; 
}
if (status == 0) 
{
    cout << "Text extraction successful." << endl;
} else 
{ 
    cout << "Text extraction failed." << endl; 
}
C++

Nous vérifions la variable status pour voir si la commande pdftotext s'est exécutée avec succès. Si status est égal à 0, cela signifie que l'extraction de texte a réussi, et nous affichons un message de réussite. Si le status est non nul, cela indique une erreur, et nous affichons un message d'erreur.

Lire le texte extrait et l'afficher

ifstream outputFile(outputFilePath);
if (outputFile.is_open()) { 
    string textContent;
    string line;
    while (getline(outputFile, line)) {
        textContent += line + "\n";
    }
    outputFile.close();
    cout << "Text content extracted from PDF:" << endl;
    cout << textContent << endl;
} else {
    cout << "Failed to open output file." << endl;
}
ifstream outputFile(outputFilePath);
if (outputFile.is_open()) { 
    string textContent;
    string line;
    while (getline(outputFile, line)) {
        textContent += line + "\n";
    }
    outputFile.close();
    cout << "Text content extracted from PDF:" << endl;
    cout << textContent << endl;
} else {
    cout << "Failed to open output file." << endl;
}
C++

Dans l'exemple de code ci-dessus, nous ouvrons le outputFile (le fichier texte généré par pdftotext), lisons son contenu ligne par ligne et le stockons dans la chaîne textContent. Enfin, nous fermons le fichier et imprimons le contenu du texte extrait sur la console.

Supprimer le fichier de sortie

Si vous n'avez pas besoin du fichier texte de sortie éditable ou si vous souhaitez libérer de l'espace disque, à la fin du programme, supprimez-le simplement à l'aide de la commande suivante avant de terminer la fonction principale :

remove(outputFilePath.c_str());
remove(outputFilePath.c_str());
C++

Compilation et exécution du programme

Construire le code en utilisant la touche de raccourci "Ctrl+F9". Une fois la compilation réussie, l'exécution de l'exécutable permet d'extraire le contenu textuel du document PDF spécifié et de l'afficher sur la console. Le résultat est le suivant :

Comment afficher des fichiers PDF en C++ : Figure 2

Visualiser des fichiers PDF dans C# ;

IronPDF .NET C# Library est une bibliothèque PDF .NET C# puissante qui permet aux utilisateurs de visualiser facilement des fichiers PDF dans leurs applications C#. S'appuyant sur le moteur de navigateur web Chromium, IronPDF rend et affiche avec précision le contenu des PDF, y compris les images, les polices et les mises en forme complexes. Grâce à son interface conviviale et à ses fonctionnalités étendues, les développeurs peuvent intégrer IronPDF en toute transparence dans leurs projets C#, ce qui permet aux utilisateurs de visualiser les documents PDF de manière efficace et interactive. Qu'il s'agisse d'afficher des rapports, des factures ou tout autre contenu PDF, IronPDF constitue une solution robuste pour créer des visionneuses PDF riches en fonctionnalités en C#.

Pour installer le paquet NuGet IronPDF dans Visual Studio, procédez comme suit :

  1. Ouvrez Visual Studio : Lancez Visual Studio ou tout autre IDE de votre préférence.

  2. Créer ou ouvrir votre projet : Créez un nouveau projet C# ou ouvrez un projet existant où vous souhaitez installer le package IronPDF.

  3. Ouvrir le gestionnaire de packages NuGet : Dans Visual Studio, allez dans "Outils" > "Gestionnaire de packages NuGet" > "Gérer les packages NuGet pour la solution". Vous pouvez également cliquer sur l'explorateur de solutions et sélectionner "Manage NuGet Packages for Solution".

  4. Recherchez IronPDF : Dans la fenêtre "Gestionnaire de packages NuGet", cliquez sur l'onglet "Parcourir", puis recherchez "IronPDF" dans la barre de recherche. Sinon, visitez le NuGet IronPDF Package et téléchargez directement la dernière version de "IronPDF".

  5. Sélectionner le package IronPDF : Trouvez le package "IronPDF" et cliquez dessus pour le sélectionner pour votre projet.

  6. Installer IronPDF : Cliquez sur le bouton "Installer" pour installer le package sélectionné.

  7. Cependant, vous pouvez également installer IronPDF à l'aide de la console NuGet Package Manager en utilisant la commande suivante :
    :ProductInstall

En utilisant IronPDF, nous pouvons effectuer des opérations telles que extraire du texte et des images de documents PDF et les afficher dans la console pour les visualiser. Le code suivant permet de réaliser cette tâche :

using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Extracting Image and Text content from Pdf Documents

// open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Get all text to put in a search index
string text = pdf.ExtractAllText();

// Get all Images
var allImages = pdf.ExtractAllImages();

// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
    int pageNumber = index + 1;
    text = pdf.ExtractTextFromPage(index);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
    //...
}
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Extracting Image and Text content from Pdf Documents

// open a 128-bit encrypted PDF
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Get all text to put in a search index
string text = pdf.ExtractAllText();

// Get all Images
var allImages = pdf.ExtractAllImages();

// Or even find the precise text and images for each page in the document
for (var index = 0 ; index < pdf.PageCount ; index++)
{
    int pageNumber = index + 1;
    text = pdf.ExtractTextFromPage(index);
    List<AnyBitmap> images = pdf.ExtractBitmapsFromPage(index);
    //...
}

Pour plus d'informations détaillées sur IronPDF, veuillez visiter la Documentation IronPDF.

Conclusion

Dans cet article, nous avons appris à extraire et à visualiser le contenu d'un document PDF en C# à l'aide de l'outil de ligne de commande Xpdf. Cette approche nous permet de traiter et d'analyser le texte extrait au sein de nos applications C# de manière transparente.

Informations sur le licensing d'IronPDF est gratuit à utiliser à des fins de développement, mais les PDF sont générés avec un filigrane. Pour supprimer le filigrane et utiliser IronPDF à des fins commerciales, vous pouvez acheter une licence.

Une licence d'essai gratuite est également disponible pour des tests à des fins commerciales.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
Comment convertir un PDF en image en NodeJS
SUIVANT >
Comment créer des fichiers PDF en C# ?