Textextraktion från dokument (PDF, ordbehandling, webbsidor, etc.) har en mängd olika användningsfall i världen av digital information. Den kan till exempel användas för att analysera dokument, utföra textanalys, informationssökning, lagra dokuments innehåll i databaser och så vidare. Om vi begränsar det, är PDF ett av de mest använda dokumentformaten för att behålla och dela digital information. Denna popularitet gör PDF-dokument till en enorm informationskälla. Därför kan tolka eller extrahera text från PDF-dokument möjligen vara involverat i ett antal textanalysscenarier.
För att automatisera PDF-tolkningen i C++-applikationer, visar den här artikeln hur man extraherar text från PDF-dokument med C++. Den täcker följande textextraktionsscenarier:
- Extrahera text från ett PDF-dokument med C++.
- Extrahera text från vissa sidor i ett PDF-dokument med C++.
- Sida för sida textextraktion från ett PDF-dokument med C++.
C++ PDF Reader och Text Extractor Library
För att extrahera text från PDF-dokument kommer vi att använda Aspose.PDF för C++ som är ett kraftfullt PDF-bibliotek för att skapa, konvertera och analysera PDF-dokument. Du kan ladda ner biblioteksfilerna såväl som de körande kodexemplen från avsnittet Nedladdningar.
Extrahera text från PDF med C++
Aspose.PDF för C++ låter dig analysera PDF-dokumenten i några enkla steg. Följande är receptet för att extrahera text från ett PDF-dokument.
- Skapa ett objekt av klassen PdfExtractor.
- Ladda PDF-dokumentet med funktionen PdfExtractor->BindPdf().
- Extrahera texten från PDF-dokument till PdfExtractor med funktionen PdfExtractor->ExtractText().
- Spara den extraherade texten i ett MemoryStream-objekt.
- Läs texten som sträng från MemoryStream.
Följande kodexempel visar hur man extraherar text från en PDF med C++.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Bind käll PDF-dokument
extractor->BindPdf(u"candy.pdf");
// Extrahera text från PDF till PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Spara text i minnesströmmen
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Skriv ut extraherad text
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
Extrahera text från särskilda sidor i PDF med C++
Det kan vara fallet när du bara behöver extrahera text från några få sidor i PDF. I ett sådant fall kan du ange ett intervall av sidorna i PDF genom att ställa in start- och slutsidnummer. Följande är stegen för att extrahera text från vissa sidor i ett PDF-dokument.
- Skapa ett objekt av klassen PdfExtractor.
- Ladda PDF-dokumentet med funktionen PdfExtractor->BindPdf().
- Ställ in start- och slutsidnumret med funktionerna PdfExtractor->setStartPage() respektive PdfExtractor->setEndPage().
- Extrahera texten från PDF med funktionen PdfExtractor->ExtractText().
- Spara den extraherade texten i ett MemoryStream-objekt.
- Läs texten som sträng från MemoryStream.
Följande kodexempel visar hur man extraherar text från vissa PDF-sidor i C++.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Bind käll PDF-dokument
extractor->BindPdf(u"candy.pdf");
// Ställ in sidintervall
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// Extrahera text från PDF till PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Spara text i minnesströmmen
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Skriv ut extraherad text
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
Extrahera sida för sida text från PDF i C++
Istället för att extrahera all text från ett PDF-dokument, kan du extrahera text från varje sida i dokumentet separat. Följande är stegen för att extrahera sida för sida text från PDF.
- Skapa ett objekt av klassen PdfExtractor.
- Ladda PDF-dokumentet med funktionen PdfExtractor->BindPdf().
- Anropa funktionen PdfExtractor->ExtractText() för att hämta text från PDF-dokument till PdfExtractor.
- Gå igenom varje sida med funktionen PdfExtractor->HasNextPageText().
- Extrahera text till minnesströmmen med funktionen PdfExtractor->GetNextPageText().
- Läs text från minnesströmmen.
Följande kodexempel visar hur man extraherar text sida för sida från PDF i C++.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Bind käll PDF-dokument
extractor->BindPdf(u"candy.pdf");
// Extrahera text från PDF till 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;
// Ange Unicode-kodningstyp i StreamReader-konstruktorn
auto streamReader = MakeObject<StreamReader>(memStream, unicode);
streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
text = streamReader->ReadToEnd();
streamReader->Dispose();
// Skriv ut extraherad text
std::cout << "Page: " << pageNumber << "\n";
Console::Write(text);
std::cout << "\n------------------------\n";
pageNumber++;
}
Läs mer om Aspose.PDF för C++
Du kan utforska mer om Aspose.PDF för C++ med hjälp av dokumentationen.