Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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 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.
Bevor wir beginnen, sollten Sie sicherstellen, dass die folgenden Voraussetzungen erfüllt sind:
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.
Öffnen Sie Code::Blocks: Starten Sie die Code::Blocks IDE auf Ihrem Computer.
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".
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"
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"
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
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
string pdfPath = "input.pdf";
string outputFilePath = "output.txt";
IRON VB CONVERTER ERROR developers@ironsoftware.com
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:
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
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
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.
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
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.
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
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:
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:
Öffnen Sie Visual Studio: Starten Sie Visual Studio oder eine andere IDE Ihrer Wahl.
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.
Ö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.
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.
Wählen Sie das IronPDF-Paket: Suchen Sie das Paket "IronPDF" und klicken Sie darauf, um es für Ihr Projekt auszuwählen.
Install IronPDF: Klicken Sie auf die Schaltfläche "Installieren", um das ausgewählte Paket zu 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
Ausführlichere Informationen über IronPDF finden Sie auf der Website dokumentation.
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.
9 .NET API-Produkte für Ihre Bürodokumente