PDF-WERKZEUGE

Wie man PDF-Dateien in C++ liest

Veröffentlicht 5. Juli 2023
Teilen Sie:

PDF (Portable Document Format) dateien werden häufig für den Dokumentenaustausch verwendet, und die Möglichkeit, ihren Inhalt programmgesteuert zu lesen, ist in verschiedenen Anwendungen von großem Nutzen. Die folgenden Bibliotheken sind verfügbar, um PDF in C++ zu lesen: Poppler, Mupdf, Haru freie PDF-Bibliothek, Xpdf, Qpdf.

In diesem Artikel werden wir nur untersuchen, wie man PDF-Dateien in C++ mit dem Xpdf-Befehlszeilen-Tool lesen kann. 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 Werkzeugen und Bibliotheken für die Arbeit mit PDF (Portable Document Format) dateien. Die Xpdf-Suite umfasst mehrere Befehlszeilen-Dienstprogramme und C++-Bibliotheken, die verschiedene PDF-bezogene Funktionen wie Parsing, Rendering, Textextraktion und mehr ermöglichen. Einige Schlüsselkomponenten von Xpdf sind: pdfimages, pdftops, pdfinfo, pdfimages. Hier werden wir pdftotext verwenden, um PDF-Dokumente zu lesen.

pdftotext" ist ein Kommandozeilenwerkzeug, das Textinhalte aus PDF-Dateien extrahiert und als reinen Text 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 hier herunter: https://www.xpdfreader.com/. 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>

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;
}

Code Erläuterung

Im obigen Code definieren wir die Variable "pdfPath", die den Pfad zur PDF-Eingabedatei enthält. Ersetzen Sie diese durch den entsprechenden Pfad zu Ihrem tatsächlichen PDF-Eingabedokument.

Wir definieren auch die Variable outputFilePath, um den Pfad zur Ausgabetextdatei zu speichern, die von Xpdf erzeugt wird.

Der Code führt den Befehl "pdftotext" mit der Funktion "system" aus und übergibt den Pfad der PDF-Eingabedatei und den Pfad der Ausgabetextdatei als Befehlszeilenargumente. Die Variable "status" erfasst den Exit-Status des Befehls.

Wenn pdftotext erfolgreich ausgeführt wird (angezeigt durch einen Status von 0)öffnen wir die Ausgabetextdatei mit "ifstream". Dann lesen wir den Textinhalt zeilenweise und speichern ihn in der Zeichenkette textContent.

Schließlich geben wir den extrahierten Textinhalt aus der erzeugten Ausgabedatei auf der Konsole aus. Wenn Sie die editierbare 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());

Schritt 3 Kompilieren und Ausführen des Programms

Kompilieren Sie den C++-Code und führen Sie die ausführbare Datei aus. Wenn der pdftotext zu den Umgebungsvariablen Systempfad hinzugefügt wird, wird der 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 ist eine beliebte C# PDF-Bibliothek, die leistungsstarke Funktionen für die Arbeit mit PDF-Dokumenten bietet. Sie ermöglicht es 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.

Das folgende Codebeispiel wird pDF-Datei lesen format mit IronPDF:

//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);
    //...
}

Ausführlichere Informationen zum Lesen von PDF-Dokumenten finden Sie unter folgendem Link hier.

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.

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 für die Entwicklung kostenlos und bietet eine kostenloser Test für die kommerzielle Nutzung. Darüber hinaus muss es sein lizenziert für kommerzielle Zwecke.

< PREVIOUS
Wie man PDF-Dateien in C++ erstellt
NÄCHSTES >
Konvertieren von HTML in PDF in C++

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >