Extrahera text från PDF C++

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.

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.

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.

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.

Se även