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.
- Utwórz obiekt klasy PdfExtractor.
- Załaduj dokument PDF za pomocą funkcji PdfExtractor->BindPdf().
- Wyodrębnij tekst z dokumentu PDF do PdfExtractor za pomocą funkcji PdfExtractor->ExtractText().
- Zapisz wyodrębniony tekst w obiekcie MemoryStream.
- Przeczytaj tekst jako ciąg z MemoryStream.
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.
- Utwórz obiekt klasy PdfExtractor.
- Załaduj dokument PDF za pomocą funkcji PdfExtractor->BindPdf().
- Ustaw numer strony początkowej i końcowej, używając odpowiednio funkcji PdfExtractor->setStartPage() i PdfExtractor->setEndPage().
- Wyodrębnij tekst z pliku PDF za pomocą funkcji PdfExtractor->ExtractText().
- Zapisz wyodrębniony tekst w obiekcie MemoryStream.
- Przeczytaj tekst jako ciąg z MemoryStream.
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.
- Utwórz obiekt klasy PdfExtractor.
- Załaduj dokument PDF za pomocą funkcji PdfExtractor->BindPdf().
- Wywołaj funkcję PdfExtractor->ExtractText(), aby pobrać tekst z dokumentu PDF do PdfExtractor.
- Przejrzyj każdą stronę za pomocą funkcji PdfExtractor->HasNextPageText().
- Wyodrębnij tekst do strumienia pamięci za pomocą funkcji PdfExtractor->GetNextPageText().
- Przeczytaj tekst ze strumienia pamięci.
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.