Text aus PDF C++ extrahieren

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.

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.

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.

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.

Siehe auch