Die Textextraktion aus Dokumenten (PDF, Textverarbeitung, Webseiten usw.) hat eine Vielzahl von Anwendungsfällen in der Welt der digitalen Informationen. Beispielsweise kann es zum Analysieren von Dokumenten, zum Durchführen von Textanalysen, zum Abrufen von Informationen, zum Speichern von Dokumenteninhalten in Datenbanken usw. verwendet werden. Wenn wir es eingrenzen, ist PDF eines der am häufigsten verwendeten Dokument formate zum Aufbewahren und Teilen digitaler Informationen. Diese Popularität macht PDF Dokumente zu einer riesigen Informationsquelle. Daher könnte das Parsen oder Extrahieren von Text aus PDF Dokumenten möglicherweise in einer Reihe von Textanalyseszenarien enthalten sein.
Um das PDF-Parsing in C++ Anwendungen zu automatisieren, zeigt dieser Artikel, wie Sie mit C++ Text aus PDF Dokumenten extrahieren. Es deckt die folgenden Textextraktionsszenarien ab:
- Extrahieren Sie Text aus einem PDF Dokument mit C++.
- Extrahieren Sie Text aus bestimmten Seiten in einem PDF Dokument mit C++.
- Textextraktion Seite für Seite aus einem PDF Dokument mit C++.
C++ PDF Reader und Text Extractor Library
Zum Extrahieren von Text aus PDF Dokumenten verwenden wir Aspose.PDF for C++, eine leistungsstarke PDF Bibliothek zum Erstellen, Konvertieren und Analysieren von PDF Dokumenten. Sie können die Bibliotheksdateien sowie die laufenden Codebeispiele aus dem Abschnitt Downloads herunterladen.
Extrahieren Sie Text aus PDF mit C++
Mit Aspose.PDF for C++ können Sie die PDF Dokumente in wenigen einfachen Schritten parsen. Das Folgende ist das Rezept zum Extrahieren von Text aus einem PDF Dokument.
- Erstellen Sie ein Objekt der Klasse PdfExtractor.
- Laden Sie das PDF Dokument mit der Funktion PdfExtractor->BindPdf().
- Extrahieren Sie den Text aus dem PDF Dokument nach PdfExtractor mit der Funktion PdfExtractor->ExtractText().
- Speichern Sie den extrahierten Text in einem MemoryStream objekt.
- Liest den Text als String aus MemoryStream.
Das folgende Codebeispiel zeigt, wie Sie mit C++ Text aus einer PDF Datei extrahieren.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Quell-PDF Dokument binden
extractor->BindPdf(u"candy.pdf");
// Text aus PDF in PdfExtractor extrahieren
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Speichern Sie Text im Speicherstrom
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Extrahierten Text drucken
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
Extrahieren Sie Text aus bestimmten Seiten in PDF mit C++
Es kann vorkommen, dass Sie Text nur aus wenigen PDF-Seiten extrahieren müssen. Für einen solchen Fall können Sie einen Seitenbereich im PDF angeben, indem Sie Start und Endseitenzahlen festlegen. Im Folgenden sind die Schritte zum Extrahieren von Text aus bestimmten Seiten in einem PDF Dokument aufgeführt.
- Erstellen Sie ein Objekt der Klasse PdfExtractor.
- Laden Sie das PDF Dokument mit der Funktion PdfExtractor->BindPdf().
- Legen Sie die Start und Endseitenzahl mit den Funktionen PdfExtractor->setStartPage() bzw. PdfExtractor->setEndPage() fest.
- Extrahieren Sie den Text aus der PDF Datei mit der Funktion PdfExtractor->ExtractText().
- Speichern Sie den extrahierten Text in einem MemoryStream objekt.
- Liest den Text als String aus MemoryStream.
Das folgende Codebeispiel zeigt, wie Text aus bestimmten PDF-Seiten in C++ extrahiert wird.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Quell-PDF Dokument binden
extractor->BindPdf(u"candy.pdf");
// Seitenbereich festlegen
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// Text aus PDF in PdfExtractor extrahieren
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Speichern Sie Text im Speicherstrom
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Extrahierten Text drucken
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
Extrahieren Sie Seite für Seite Text aus PDF in C++
Anstatt den gesamten Text aus einem PDF Dokument zu extrahieren, können Sie Text aus jeder Seite des Dokuments separat extrahieren. Im Folgenden sind die Schritte zum Ausführen der seitenweisen Textextraktion aus PDF aufgeführt.
- Erstellen Sie ein Objekt der Klasse PdfExtractor.
- Laden Sie das PDF Dokument mit der Funktion PdfExtractor->BindPdf().
- Rufen Sie die Funktion PdfExtractor->ExtractText() auf, um Text aus dem PDF Dokument in PdfExtractor abzurufen.
- Durchlaufen Sie jede Seite mit der Funktion PdfExtractor->HasNextPageText().
- Text mit der Funktion PdfExtractor->GetNextPageText() in den Speicherstrom extrahieren.
- Lesen Sie Text aus dem Speicherstrom.
Das folgende Codebeispiel zeigt, wie Text Seite für Seite aus PDF in C++ extrahiert wird.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Quell-PDF Dokument binden
extractor->BindPdf(u"candy.pdf");
// Text aus PDF in PdfExtractor extrahieren
extractor->ExtractText();
auto unicode = System::Text::Encoding::get_Unicode();
int pageNumber = 1;
while (extractor->HasNextPageText())
{
auto memStream = MakeObject<IO::MemoryStream>();
extractor->GetNextPageText(memStream);
String text;
// Geben Sie den Unicode-Codierungstyp im StreamReader-Konstruktor an
auto streamReader = MakeObject<StreamReader>(memStream, unicode);
streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
text = streamReader->ReadToEnd();
streamReader->Dispose();
// Extrahierten Text drucken
std::cout << "Page: " << pageNumber << "\n";
Console::Write(text);
std::cout << "\n------------------------\n";
pageNumber++;
}
Erfahren Sie mehr über Aspose.PDF for C++
Weitere Informationen zu Aspose.PDF for C++ finden Sie in der Dokumentation.