PDF-WERKZEUGE

Wie man PDF-Dateien in C++ anzeigt

Veröffentlicht 2. August 2023
Teilen Sie:

PDF-Dateien sind ein weit verbreitetes Format für den Dokumentenaustausch, da sie die Formatierung über verschiedene Plattformen hinweg beibehalten können. In verschiedenen Anwendungen ist das programmatische Lesen des Inhalts von PDF-Dateien von unschätzbarem Wert.

In diesem Artikel lernen wir, wie man Text aus PDF-Dateien in C++ mit dem Kommandozeilen-Tool "Xpdf" anzeigen kann. xpdf" bietet eine Reihe von Kommandozeilen-Dienstprogrammen und C++-Bibliotheken für die Arbeit mit PDF-Dateien, einschließlich Textextraktion. Durch die Integration von Xpdf in unser C++ PDF-Viewer-Programm können wir Textinhalte aus PDF-Dateien effizient anzeigen und programmatisch verarbeiten.

xpdf" - C++-Bibliothek und Befehlszeilen-Tools

Xpdf ist ein Open-Source-Softwarepaket, das eine Reihe von Werkzeugen und Bibliotheken für die Arbeit mit PDF-Dateien bietet. Es enthält verschiedene Befehlszeilen-Dienstprogramme und C++-Bibliotheken, die PDF-bezogene Funktionen wie Parsing, Rendering, Drucken und Textextraktion ermöglichen. Die Kommandozeilen-Tools von Xpdf bieten auch die Möglichkeit, PDF-Dateien direkt vom Terminal aus zu betrachten.

Eine der Schlüsselkomponenten von Xpdf ist pdftotext, das hauptsächlich für die Extraktion von Textinhalten aus PDF-Dateien bekannt ist. In Kombination mit anderen Werkzeugen wie pdftops und pdfimages ermöglicht Xpdf den Benutzern jedoch, den PDF-Inhalt auf unterschiedliche Weise zu betrachten. das Werkzeug Pdftotext erweist sich als wertvoll für die Extraktion von Textinformationen aus PDFs für die weitere Verarbeitung oder Analyse, und es bietet Optionen, um festzulegen, aus welchen Seiten der Text extrahiert werden soll.

Voraussetzungen

Bevor wir beginnen, sollten Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:

  1. Ein C++-Compiler wie GCC oder Clang, der auf Ihrem System installiert ist. Wir werden Folgendes verwenden Code::Blöcke IDE für diesen Zweck.

  2. Xpdf-Befehlszeilen-Tools installiert und über die Befehlszeile zugänglich. Herunterladen und installieren Sie die für Ihre Umgebung geeignete Version von Xpdf. Danach setzen Sie das bin-Verzeichnis von Xpdf in den Pfad der Systemumgebungsvariablen, um von jedem Ort im Dateisystem darauf zugreifen zu können.

Erstellen eines PDF-Viewer-Projekts

  1. Öffnen Sie Code::Blocks: Starten Sie die Code::Blocks IDE auf Ihrem Computer.

  2. Erstellen Sie ein neues Projekt: Klicken Sie im oberen Menü auf "Datei" und wählen Sie "Neu" aus dem Dropdown-Menü. Klicken Sie dann im Untermenü auf "Projekt".

  3. Wählen Sie den Projekttyp: Wählen Sie im Fenster "Neu aus Vorlage" die Option "Konsolenanwendung" und klicken Sie auf "Los". Wählen Sie dann die Sprache "C/C++" und klicken Sie auf "Weiter"

  4. Projektdetails eingeben: Geben Sie im Feld "Projekttitel" Ihrem Projekt einen Namen (z.B. "PDFViewer"). Wählen Sie den Ort, an dem Sie die Projektdateien speichern möchten, und klicken Sie auf "Weiter"

  5. Wählen Sie den Compiler: Wählen Sie den Compiler, den Sie für Ihr Projekt verwenden möchten. Standardmäßig sollte Code::Blocks die verfügbaren Compiler auf Ihrem System automatisch erkannt haben. Falls nicht, wählen Sie einen geeigneten Compiler aus der Liste und klicken Sie auf "Fertig stellen"

Schritte zum Anzeigen von Text aus PDF in C++

Erforderliche Kopfzeilen einfügen

Fügen wir zunächst die erforderlichen Header-Dateien zu unserer Datei main.cpp hinzu:

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <cstdio>
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Eingabe- und Ausgabepfade festlegen

string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

In der Funktion main deklarieren wir zwei Zeichenketten: pdfPath" und "outputFilePath". pdfPath" speichert den Pfad zur PDF-Eingabedatei, und **"outputFilePath" speichert den Pfad, in dem der extrahierte Text als reine Textdatei gespeichert werden soll.

Die Eingabedatei sieht wie folgt aus:

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

Ausführen des Befehls pdftotext

string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
string command = "pdftotext " + pdfPath + " " + outputFilePath;
int status = system(command.c_str());
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Hier haben wir den Befehl pdftotext unter Verwendung der Variablen pdfPath und outputFilePath konstruiert, um eine PDF-Datei zu öffnen und ihren Inhalt anzuzeigen. Die Funktion "System" wird dann aufgerufen, um den Befehl auszuführen, und ihr Rückgabewert wird in der Variablen "Status" gespeichert.

Status der Textextraktion prüfen

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; 
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Wir überprüfen die Variable status, um zu sehen, ob der Befehl pdftotext erfolgreich ausgeführt wurde. Wenn status gleich 0 ist, bedeutet dies, dass die Textextraktion erfolgreich war, und wir geben eine Erfolgsmeldung aus. Wenn der "Status" ungleich Null ist, liegt ein Fehler vor, und es wird eine Fehlermeldung ausgegeben.

Extrahierten Text lesen und anzeigen

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;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

In dem obigen Beispielcode öffnen wir die Datei "outputFile" (die von pdftotext erzeugte Textdatei)ein, lesen dessen Inhalt zeilenweise und speichern ihn in der Zeichenkette textContent. Schließlich schließen wir die Datei und geben den extrahierten Textinhalt auf der Konsole aus.

Ausgabedatei entfernen

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());
remove(outputFilePath.c_str());
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Kompilieren und Ausführen des Programms

Erstellen Sie den Code mit der Tastenkombination "Strg+F9". Nach erfolgreicher Kompilierung extrahiert die ausführbare Datei den Textinhalt aus dem angegebenen PDF-Dokument und zeigt ihn auf der Konsole an. Die Ausgabe lautet wie folgt:

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

PDF-Dateien in C# anzeigen;

IronPDF ist eine leistungsstarke .NET C# PDF-Bibliothek, mit der Benutzer PDF-Dateien in ihren C#-Anwendungen problemlos anzeigen können. IronPDF nutzt die Chromium-Webbrowser-Engine, um PDF-Inhalte, einschließlich Bildern, Schriftarten und komplexer Formatierungen, präzise zu rendern und anzuzeigen. Mit seiner benutzerfreundlichen Oberfläche und den umfangreichen Funktionen können Entwickler IronPDF nahtlos in ihre C#-Projekte integrieren, so dass die Benutzer PDF-Dokumente effizient und interaktiv anzeigen können. Ob für die Anzeige von Berichten, Rechnungen oder anderen PDF-Inhalten, IronPDF bietet eine robuste Lösung für die Erstellung funktionsreicher PDF-Viewer in C#;

Gehen Sie folgendermaßen vor, um das IronPDF NuGet-Paket in Visual Studio zu installieren:

  1. Öffnen Sie Visual Studio: Starten Sie Visual Studio oder eine andere IDE Ihrer Wahl.

  2. Erstellen oder öffnen Sie Ihr Projekt: Erstellen Sie ein neues C#-Projekt oder öffnen Sie ein bestehendes Projekt, in dem Sie das IronPDF-Paket installieren möchten.

  3. Öffnen Sie den NuGet Package Manager: Gehen Sie in Visual Studio zu "Tools" > "NuGet Package Manager" > "Manage NuGet Packages for Solution". Alternativ können Sie auch auf den Projektmappen-Explorer klicken und dann "NuGet-Pakete für Projektmappe verwalten" auswählen.

  4. Suchen Sie nach IronPDF: Klicken Sie im Fenster "NuGet Package Manager" auf die Registerkarte "Durchsuchen", und suchen Sie dann in der Suchleiste nach "IronPDF". Alternativ können Sie auch die NuGet-Website und laden Sie direkt die neueste Version von "IronPDF" herunter.

  5. Wählen Sie das IronPDF-Paket: Suchen Sie das Paket "IronPDF" und klicken Sie darauf, um es für Ihr Projekt auszuwählen.

  6. Install IronPDF: Klicken Sie auf die Schaltfläche "Installieren", um das ausgewählte Paket zu installieren.

  7. Sie können IronPDF jedoch auch über die NuGet Package Manager Console mit dem folgenden Befehl installieren:
    :ProductInstall

Mit IronPDF können wir text und Bilder extrahieren und zeigen sie in der Konsole zur Ansicht an. Der folgende Code hilft, diese Aufgabe zu erfüllen:

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);
    //...
}
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Extracting Image and Text content from Pdf Documents

' open a 128 bit encrypted PDF
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Get all text to put in a search index
Private text As String = pdf.ExtractAllText()

' Get all Images
Private allImages = pdf.ExtractAllImages()

' Or even find the precise text and images for each page in the document
For index = 0 To pdf.PageCount - 1
	Dim pageNumber As Integer = index + 1
	text = pdf.ExtractTextFromPage(index)
	Dim images As List(Of AnyBitmap) = pdf.ExtractBitmapsFromPage(index)
	'...
Next index
VB   C#

Ausführlichere Informationen über IronPDF finden Sie auf der Website dokumentation.

Schlussfolgerung

In diesem Artikel haben wir gelernt, wie man den Inhalt eines PDF-Dokuments in C++ mit dem Befehlszeilen-Tool Xpdf extrahiert und anzeigt. Dieser Ansatz ermöglicht es uns, den extrahierten Text in unseren C++-Anwendungen nahtlos zu verarbeiten und zu analysieren.

IronPDF kann für Entwicklungszwecke kostenlos verwendet werden, aber die PDF-Dateien werden mit einem Wasserzeichen versehen. Um das Wasserzeichen zu entfernen und IronPDF für kommerzielle Zwecke zu nutzen, können Sie eine lizenz.

A kostenlose Testlizenz ist auch für kommerzielle Zwecke zu testen.

< PREVIOUS
PDF in NodeJS in ein Bild umwandeln
NÄCHSTES >
Wie man PDF-Dateien in C++ erstellt

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

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