Ekstrak Teks Dari PDF C++

Ekstraksi teks dari dokumen (PDF, pengolah kata, halaman web, dll.) Memiliki berbagai kasus penggunaan dalam dunia informasi digital. Misalnya, dapat digunakan untuk parsing dokumen, melakukan analisis teks, pencarian informasi, menyimpan konten dokumen ke dalam database, dan sebagainya. Jika kita mempersempitnya, PDF adalah salah satu format dokumen yang paling banyak digunakan untuk menyimpan dan berbagi informasi digital. Popularitas ini membuat dokumen PDF menjadi sumber informasi yang sangat besar. Oleh karena itu, mem-parsing atau mengekstraksi teks dari dokumen PDF mungkin dapat dilakukan dalam sejumlah skenario analisis teks.

Untuk mengotomatiskan penguraian PDF dalam aplikasi C++, artikel ini menunjukkan cara mengekstrak teks dari dokumen PDF menggunakan C++. Ini mencakup skenario ekstraksi teks berikut:

  • Ekstrak teks dari dokumen PDF menggunakan C++.
  • Ekstrak teks dari halaman tertentu dalam dokumen PDF menggunakan C++.
  • Ekstraksi teks halaman demi halaman dari dokumen PDF menggunakan C++.

C++ PDF Reader dan Text Extractor Library

Untuk mengekstrak teks dari dokumen PDF, kami akan menggunakan Aspose.PDF for C++ yang merupakan library PDF yang kuat untuk membuat, mengonversi, dan mem-parsing dokumen PDF. Anda dapat mengunduh file pustaka serta contoh kode yang sedang berjalan dari bagian Unduhan.

Ekstrak Teks dari PDF menggunakan C++

Aspose.PDF for C++ memungkinkan Anda mengurai dokumen PDF dalam beberapa langkah sederhana. Berikut ini adalah resep untuk mengekstrak teks dari dokumen PDF.

Contoh kode berikut menunjukkan cara mengekstrak teks dari PDF menggunakan C++.

auto extractor = MakeObject<Facades::PdfExtractor>();
// Ikat dokumen PDF sumber
extractor->BindPdf(u"candy.pdf");
// Ekstrak teks dari PDF ke PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Simpan teks ke dalam aliran memori
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Cetak teks yang diekstraksi
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);

Ekstrak Teks dari Halaman Tertentu dalam PDF menggunakan C++

Mungkin ada kasus ketika Anda hanya perlu mengekstrak teks dari beberapa halaman PDF saja. Untuk kasus seperti itu, Anda dapat menentukan rentang halaman dalam PDF dengan mengatur nomor halaman awal dan akhir. Berikut ini adalah langkah-langkah untuk mengekstrak teks dari halaman tertentu dalam dokumen PDF.

Contoh kode berikut menunjukkan cara mengekstrak teks dari halaman PDF tertentu di C++.

auto extractor = MakeObject<Facades::PdfExtractor>();
// Ikat dokumen PDF sumber
extractor->BindPdf(u"candy.pdf");
// Tetapkan rentang halaman
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// Ekstrak teks dari PDF ke PdfExtractor
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Simpan teks ke dalam aliran memori
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Cetak teks yang diekstrak
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);

Ekstrak Teks Halaman demi Halaman dari PDF dalam C++

Alih-alih mengekstrak semua teks dari dokumen PDF, Anda dapat mengekstrak teks dari setiap halaman dokumen secara terpisah. Berikut ini adalah langkah-langkah untuk melakukan ekstraksi teks halaman demi halaman dari PDF.

Contoh kode berikut menunjukkan cara mengekstrak teks halaman demi halaman dari PDF di C++.

auto extractor = MakeObject<Facades::PdfExtractor>();
// Ikat dokumen PDF sumber
extractor->BindPdf(u"candy.pdf");
// Ekstrak teks dari PDF ke 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;
	// Tentukan jenis pengkodean Unicode di konstruktor StreamReader
	auto streamReader = MakeObject<StreamReader>(memStream, unicode);
	streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
	text = streamReader->ReadToEnd();
	streamReader->Dispose();
	// Cetak teks yang diekstrak
	std::cout << "Page: " << pageNumber << "\n";
	Console::Write(text);
	std::cout << "\n------------------------\n";
	pageNumber++;
}

Pelajari lebih lanjut tentang Aspose.PDF for C++

Anda dapat mempelajari lebih lanjut tentang Aspose.PDF for C++ menggunakan dokumentasi.

Lihat juga