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 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 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. Zu den wichtigsten Komponenten von Xpdf gehören pdfimages, pdftops, pdfinfo und 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 derXpdf-Website. 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", 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 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 zum Systempfad der Umgebungsvariablen 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 C# Bibliothek Ü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.

Das folgende Codebeispiel wirdironPDF zum Lesen von PDF-Dateien verwenden:

// 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
VB   C#

Ausführlichere Informationen zum Lesen von PDF-Dokumenten finden Sie auf der WebsiteIronPDF C# PDF-Leseanleitung.

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 erkunden 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 einekostenlose Testversion für kommerzielle Nutzung. Darüber hinaus muss es seinlizenziert 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.12 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,810,873 Lizenzen anzeigen >