PDF-WERKZEUGE

Wie man PDF-Dateien in C++ liest

PDF (Portable Document Format)-Dateien werden häufig für den Dokumentenaustausch verwendet, und die Fähigkeit, ihre Inhalte programmatisch zu lesen, ist in verschiedenen Anwendungen wertvoll. Die folgenden Bibliotheken sind für das Lesen von PDF in C++ verfügbar: Poppler, Mupdf, die freie PDF-Bibliothek Haru, Xpdf und Qpdf.

In diesem Artikel erfahren Sie, wie Sie PDF-Dateien in C++ mit dem Befehlszeilen-Tool Xpdf lesen können. Xpdf bietet eine Reihe von Dienstprogrammen für die Arbeit mit PDF-Dateien, einschließlich der Extraktion von Textinhalten. Durch die Integration von Xpdf in ein C++-Programm können wir den Text aus PDF-Dateien extrahieren und programmatisch verarbeiten.

Xpdf - Befehlszeilen-Tools

Xpdf ist eine Open-Source-Software-Suite, die eine Sammlung von Tools und Bibliotheken für die Arbeit mit PDF (Portable Document Format)-Dateien bereitstellt. Die Xpdf-Suite umfasst mehrere Befehlszeilen-Dienstprogramme und C++-Bibliotheken, die verschiedene PDF-bezogene Funktionen wie Parsing, Rendering, Textextraktion und mehr ermöglichen. Einige wichtige Komponenten von Xpdf umfassen pdfimages, pdftops, pdfinfo und pdfimages. Hier werden wir pdftotext verwenden, um PDF-Dokumente zu lesen.

pdftotext ist ein Befehlszeilenwerkzeug, das Textinhalte aus PDF-Dateien extrahiert und als Klartext ausgibt. Dieses Werkzeug ist besonders nützlich, wenn Sie die Textinformationen aus PDFs für die weitere Verarbeitung oder Analyse extrahieren müssen. Mit Hilfe von Optionen können Sie auch angeben, von welcher Seite oder welchen Seiten der Text extrahiert werden soll.

Voraussetzungen

Um ein PDF-Reader-Projekt zum Extrahieren von Text zu erstellen, müssen die folgenden Voraussetzungen gegeben sein:

  1. Ein C++-Compiler wie GCC oder Clang, der auf Ihrem System installiert ist. Sie können einfach jede IDE verwenden, die C++-Programmierung unterstützt.

  2. Xpdf-Befehlszeilentools, die auf Ihrem System installiert sind. Xpdf ist eine Sammlung von PDF-Dienstprogrammen, die von der Xpdf-Website bezogen werden können. Laden Sie es von der Xpdf-Website herunter. Legen Sie das bin-Verzeichnis von Xpdf im Pfad der Umgebungsvariablen fest, um von überall aus mit dem Kommandozeilenwerkzeug darauf zugreifen zu können.

Schritte zum Lesen des PDF-Dateiformats in C++

Schritt 1 Einfügen der erforderlichen Kopfzeilen

Fügen wir zunächst die erforderlichen Header-Dateien in die Datei main.cpp am Anfang ein:

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

Schritt 2 Schreiben des C++-Codes

Schreiben wir den C++-Code, der das Xpdf-Befehlszeilen-Tool aufruft, um Textinhalte aus dem PDF-Dokument zu extrahieren. Wir werden die folgende Datei input.pdf verwenden:

Wie man PDF-Dateien in C++ liest: Abbildung 1

Das Codebeispiel lautet wie folgt:

// Include C library
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>

using namespace std;

int main() {
    string pdfPath = "input.pdf";
    string outputFilePath = "output.txt";

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

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

    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 document:" << endl;
        cout << textContent << endl;
    } else {
        cout << "Failed to open output file." << endl;
        return 1;
    }

    return 0;
}
// Include C library
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>

using namespace std;

int main() {
    string pdfPath = "input.pdf";
    string outputFilePath = "output.txt";

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

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

    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 document:" << endl;
        cout << textContent << endl;
    } else {
        cout << "Failed to open output file." << endl;
        return 1;
    }

    return 0;
}
C++

Code Erläuterung

Im obigen Code definieren wir die Variable pdfPath, um den Pfad zur Eingabe-PDF-Datei zu speichern. Stellen Sie sicher, dass Sie ihn durch den entsprechenden Pfad zu Ihrem tatsächlichen Eingabe-PDF-Dokument ersetzen.

Wir definieren auch die Variable outputFilePath, um den Pfad zur Ausgabedatei zu halten, die von Xpdf generiert wird.

Der Code führt den Befehl pdftotext mit der Funktion system aus, wobei der Pfad zur Eingabe-PDF-Datei und der Pfad zur Ausgabe-Textdatei als Befehlszeilenargumente übergeben werden. Die status-Variable erfasst den Exit-Status des Befehls.

Wenn pdftotext erfolgreich ausgeführt wird (angezeigt durch einen Status von 0), fahren wir fort, die Ausgabedatei mit ifstream zu öffnen. Wir lesen dann den Textinhalt zeilenweise und speichern ihn in der textContent-Zeichenkette.

Schließlich geben wir den extrahierten Textinhalt aus der erzeugten Ausgabedatei auf der Konsole aus. Wenn Sie die bearbeitbare Ausgabetextdatei nicht benötigen oder Speicherplatz freigeben möchten, löschen Sie sie am Ende des Programms einfach mit dem folgenden Befehl, bevor Sie die Hauptfunktion beenden:

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

Schritt 3 Kompilieren und Ausführen des Programms

Kompilieren Sie den C++-Code und führen Sie die ausführbare Datei aus. Wenn pdftotext zu den Umgebungsvariablen des Systempfads hinzugefügt wird, wird sein Befehl erfolgreich ausgeführt. Das Programm erzeugt die Ausgabetextdatei und extrahiert Textinhalte aus dem PDF-Dokument. Der extrahierte Text wird dann in der Konsole angezeigt.

Die Ausgabe sieht folgendermaßen aus

Wie man PDF-Dateien in C++ liest: Abbildung 2

PDF-Dateien in C# lesen;

IronPDF-Bibliothek

IronPDF C# Library Übersicht ist eine beliebte C# PDF-Bibliothek, die leistungsstarke Funktionen für die Arbeit mit PDF-Dokumenten bietet. Es ermöglicht Entwicklern, PDF-Dateien programmatisch zu erstellen, zu bearbeiten, zu ändern und zu lesen.

Das Lesen von PDF-Dokumenten mit der IronPDF-Bibliothek ist ein unkomplizierter Prozess. Die Bibliothek bietet verschiedene Methoden und Eigenschaften, mit denen Entwickler Text, Bilder, Metadaten und andere Daten aus PDF-Seiten extrahieren können. Die extrahierten Informationen können für die weitere Verarbeitung, Analyse oder Anzeige innerhalb der Anwendung verwendet werden.

Im folgenden Codebeispiel wird IronPDF verwendet, um PDF-Dateien zu lesen:

// Rendering PDF documents to Images or Thumbnails
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);
    //...
}
// Rendering PDF documents to Images or Thumbnails
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);
    //...
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für detailliertere Informationen darüber, wie man PDF-Dokumente liest, besuchen Sie bitte den IronPDF C# PDF Reading Guide.

Schlussfolgerung

In diesem Artikel haben wir gelernt, wie man den Inhalt eines PDF-Dokuments in C++ mit dem Befehlszeilen-Tool Xpdf liest. Durch die Integration von Xpdf in ein C++-Programm können wir innerhalb einer Sekunde programmatisch Textinhalte aus PDF-Dateien extrahieren. Dieser Ansatz ermöglicht es uns, den extrahierten Text innerhalb unserer C++-Anwendungen zu verarbeiten und zu analysieren.

Erkunden Sie IronPDF ist eine leistungsstarke C#-Bibliothek, die das Lesen und Bearbeiten von PDF-Dateien erleichtert. Die umfangreichen Funktionen, die Benutzerfreundlichkeit und die zuverlässige Rendering-Engine machen es zu einer beliebten Wahl für Entwickler, die mit PDF-Dokumenten in ihren C#-Projekten arbeiten.

IronPDF ist kostenlos für die Entwicklung und bietet eine kostenlose Testversion für kommerzielle Nutzung an. Darüber hinaus muss es für kommerzielle Zwecke lizenziert werden.

Chipego
Software-Ingenieur
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS
Wie man PDF-Dateien in C++ erstellt
NÄCHSTES >
Konvertieren von HTML in PDF in C++