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.
- Buat objek dari kelas PdfExtractor.
- Muat dokumen PDF menggunakan fungsi PdfExtractor->BindPdf().
- Ekstrak teks dari dokumen PDF ke PdfExtractor menggunakan fungsi PdfExtractor->ExtractText().
- Simpan teks yang diekstrak ke dalam objek MemoryStream.
- Baca teks sebagai string dari MemoryStream.
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.
- Buat objek dari kelas PdfExtractor.
- Muat dokumen PDF menggunakan fungsi PdfExtractor->BindPdf().
- Tetapkan nomor halaman awal dan akhir menggunakan fungsi PdfExtractor->setStartPage() dan PdfExtractor->setEndPage().
- Ekstrak teks dari PDF menggunakan fungsi PdfExtractor->ExtractText().
- Simpan teks yang diekstrak ke dalam objek MemoryStream.
- Baca teks sebagai string dari MemoryStream.
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.
- Buat objek dari kelas PdfExtractor.
- Muat dokumen PDF menggunakan fungsi PdfExtractor->BindPdf().
- Panggil fungsi PdfExtractor->ExtractText() untuk mengambil teks dari dokumen PDF ke PdfExtractor.
- Ulangi setiap halaman menggunakan fungsi PdfExtractor->HasNextPageText().
- Ekstrak teks ke aliran memori menggunakan fungsi PdfExtractor->GetNextPageText().
- Membaca teks dari aliran memori.
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.