Wyodrębnij tekst z pliku PDF C++

Ekstrakcja tekstu z dokumentów (PDF, edytory tekstu, strony internetowe itp.) ma wiele zastosowań w świecie informacji cyfrowych. Na przykład może być używany do analizowania dokumentów, przeprowadzania analizy tekstu, wyszukiwania informacji, przechowywania zawartości dokumentów w bazach danych i tak dalej. Jeśli zawęzimy to, PDF jest jednym z najczęściej używanych formatów dokumentów do przechowywania i udostępniania informacji cyfrowych. Ta popularność sprawia, że dokumenty PDF są ogromnym źródłem informacji. Dlatego analizowanie lub wyodrębnianie tekstu z dokumentów PDF może być zaangażowane w wiele scenariuszy analizy tekstu.

Aby zautomatyzować parsowanie PDF w aplikacjach C++, w tym artykule pokazano, jak wyodrębnić tekst z dokumentów PDF za pomocą C++. Obejmuje następujące scenariusze wyodrębniania tekstu:

  • Wyodrębnij tekst z dokumentu PDF za pomocą C++.
  • Wyodrębnij tekst z określonych stron w dokumencie PDF za pomocą C++.
  • Ekstrakcja tekstu strona po stronie z dokumentu PDF przy użyciu języka C++.

Biblioteka C++ PDF Reader i Text Extractor

Do wyodrębniania tekstu z dokumentów PDF użyjemy Aspose.PDF for C++, która jest potężną biblioteką PDF do tworzenia, konwertowania i analizowania dokumentów PDF. Możesz pobrać pliki bibliotek, a także działające przykłady kodu z sekcji Downloads.

Wyodrębnij tekst z pliku PDF za pomocą C++

Aspose.PDF for C++ pozwala analizować dokumenty PDF w kilku prostych krokach. Poniżej przedstawiono przepis na wyodrębnianie tekstu z dokumentu PDF.

Poniższy przykładowy kod pokazuje, jak wyodrębnić tekst z pliku PDF przy użyciu języka C++.

auto extractor = MakeObject<Facades::PdfExtractor>();
// Powiąż źródłowy dokument PDF
extractor->BindPdf(u"candy.pdf");
// Wyodrębnij tekst z PDF do PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Zapisz tekst w strumieniu pamięci
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Wydrukuj wyodrębniony tekst
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);

Wyodrębnij tekst z określonych stron w formacie PDF za pomocą C++

Może się zdarzyć, że trzeba wyodrębnić tekst tylko z kilku stron pliku PDF. W takim przypadku można określić zakres stron w formacie PDF, ustawiając początkowe i końcowe numery stron. Poniżej przedstawiono kroki, aby wyodrębnić tekst z określonych stron w dokumencie PDF.

Poniższy przykładowy kod pokazuje, jak wyodrębnić tekst z określonych stron pliku PDF w języku C++.

auto extractor = MakeObject<Facades::PdfExtractor>();
// Powiąż źródłowy dokument PDF
extractor->BindPdf(u"candy.pdf");
// Ustaw zakres stron
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// Wyodrębnij tekst z PDF do PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Zapisz tekst w strumieniu pamięci
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Wydrukuj wyodrębniony tekst
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);

Wyodrębnij tekst strona po stronie z pliku PDF w C++

Zamiast wyodrębniać cały tekst z dokumentu PDF, możesz wyodrębnić tekst z każdej strony dokumentu osobno. Poniżej przedstawiono kroki przeprowadzania ekstrakcji tekstu strona po stronie z pliku PDF.

Poniższy przykładowy kod pokazuje, jak wyodrębnić tekst strona po stronie z pliku PDF w języku C++.

auto extractor = MakeObject<Facades::PdfExtractor>();
// Powiąż źródłowy dokument PDF
extractor->BindPdf(u"candy.pdf");
// Wyodrębnij tekst z PDF do PdfExtractor
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;
	// Określ typ kodowania Unicode w konstruktorze StreamReader
	auto streamReader = MakeObject<StreamReader>(memStream, unicode);
	streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
	text = streamReader->ReadToEnd();
	streamReader->Dispose();
	// Wydrukuj wyodrębniony tekst
	std::cout << "Page: " << pageNumber << "\n";
	Console::Write(text);
	std::cout << "\n------------------------\n";
	pageNumber++;
}

Dowiedz się więcej o Aspose.PDF for C++

Możesz dowiedzieć się więcej o Aspose.PDF for C++, korzystając z dokumentacji.

Zobacz też