Belgelerden (PDF, kelime işlemci, web sayfaları vb.) metin çıkarma, dijital bilgi dünyasında çeşitli kullanım durumlarına sahiptir. Örneğin, belgeleri ayrıştırmak, metin analizi yapmak, bilgi almak, belgelerin içeriğini veritabanlarına depolamak vb. için kullanılabilir. Daraltırsak, PDF, dijital bilgileri saklamak ve paylaşmak için en yaygın kullanılan belge biçimlerinden biridir. Bu popülerlik, PDF belgelerini büyük bir bilgi kaynağı haline getirir. Bu nedenle, PDF belgelerinden metin ayrıştırma veya ayıklama, muhtemelen bir dizi metin analizi senaryosunda yer alabilir.
C++ uygulamalarında PDF ayrıştırmasını otomatikleştirmek için bu makale, C++ kullanılarak PDF belgelerinden nasıl metin çıkarılacağını gösterir. Aşağıdaki metin çıkarma senaryolarını kapsar:
- C++ kullanarak bir PDF belgesinden metin ayıklayın.
- C++ kullanarak bir PDF belgesindeki belirli sayfalardan metin çıkarın.
- C++ kullanarak bir PDF belgesinden sayfa sayfa metin çıkarma.
C++ PDF Okuyucu ve Metin Çıkarıcı Kitaplığı
PDF belgelerinden metin ayıklamak için, PDF belgeleri oluşturmak, dönüştürmek ve ayrıştırmak için güçlü bir PDF kitaplığı olan Aspose.PDF for C++ kullanacağız. İndirilenler bölümünden kitaplık dosyalarını ve çalışan kod örneklerini indirebilirsiniz.
C++ kullanarak PDF’den Metin Çıkarın
Aspose.PDF for C++, PDF belgelerini birkaç basit adımda ayrıştırmanıza olanak tanır. Aşağıda, bir PDF belgesinden metin çıkarmak için reçete verilmiştir.
- PdfExtractor sınıfından bir nesne oluşturun.
- PdfExtractor->BindPdf() işlevini kullanarak PDF belgesini yükleyin.
- PdfExtractor->ExtractText() işlevini kullanarak metni PDF belgesinden PdfExtractor‘a çıkarın.
- Ayıklanan metni bir MemoryStream nesnesine kaydedin.
- Metni MemoryStream’den dize olarak okuyun.
Aşağıdaki kod örneği, C++ kullanarak bir PDF’den nasıl metin çıkarılacağını gösterir.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Kaynak PDF belgesini bağla
extractor->BindPdf(u"candy.pdf");
// PDF'den PdfExtractor'a metin ayıklayın
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Metni bellek akışına kaydet
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Ayıklanan metni yazdır
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
C++ kullanarak PDF’deki Belirli Sayfalardan Metin Çıkarma
Yalnızca birkaç PDF sayfasından metin çıkarmanız gerektiğinde durum söz konusu olabilir. Böyle bir durumda, başlangıç ve bitiş sayfa numaralarını ayarlayarak PDF’de bir sayfa aralığı belirleyebilirsiniz. Aşağıdakiler, bir PDF belgesindeki belirli sayfalardan metin ayıklama adımlarıdır.
- PdfExtractor sınıfından bir nesne oluşturun.
- PdfExtractor->BindPdf() işlevini kullanarak PDF belgesini yükleyin.
- Sırasıyla PdfExtractor->setStartPage() ve PdfExtractor->setEndPage() işlevlerini kullanarak başlangıç ve bitiş sayfa numarasını ayarlayın.
- PdfExtractor->ExtractText() işlevini kullanarak metni PDF’den çıkarın.
- Ayıklanan metni bir MemoryStream nesnesine kaydedin.
- Metni MemoryStream’den dize olarak okuyun.
Aşağıdaki kod örneği, C++‘da belirli PDF sayfalarından metnin nasıl çıkarılacağını gösterir.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Kaynak PDF belgesini bağla
extractor->BindPdf(u"candy.pdf");
// Sayfa aralığını ayarla
extractor->set_StartPage(2);
extractor->set_EndPage(2);
// PDF'den PdfExtractor'a metin ayıklayın
extractor->ExtractText();
auto memStream = MakeObject<IO::MemoryStream>();
// Metni bellek akışına kaydet
extractor->GetText(memStream);
auto unicode = System::Text::Encoding::get_Unicode();
String allText = unicode->GetString(memStream->ToArray());
// Ayıklanan metni yazdır
Console::WriteLine(u"Extracted text:");
Console::WriteLine(allText);
C++ ile PDF’den Sayfa Sayfa Metnini Çıkarın
Bir PDF belgesindeki tüm metni ayıklamak yerine, belgenin her sayfasından ayrı ayrı metin çıkarabilirsiniz. Aşağıda, PDF’den sayfa sayfa metin ayıklama gerçekleştirme adımları verilmiştir.
- PdfExtractor sınıfından bir nesne oluşturun.
- PdfExtractor->BindPdf() işlevini kullanarak PDF belgesini yükleyin.
- PDF belgesinden PdfExtractor’a metin almak için PdfExtractor->ExtractText() işlevini çağırın.
- PdfExtractor->HasNextPageText() işlevini kullanarak her sayfada döngü yapın.
- PdfExtractor->GetNextPageText() işlevini kullanarak metni bellek akışına çıkarın.
- Bellek akışından metin okuyun.
Aşağıdaki kod örneği, C++‘da PDF’den sayfa sayfa metin ayıklamayı gösterir.
auto extractor = MakeObject<Facades::PdfExtractor>();
// Kaynak PDF belgesini bağla
extractor->BindPdf(u"candy.pdf");
// PDF'den PdfExtractor'a metin ayıklayın
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;
// StreamReader yapıcısında Unicode kodlama türünü belirtin
auto streamReader = MakeObject<StreamReader>(memStream, unicode);
streamReader->get_BaseStream()->Seek(0, SeekOrigin::Begin);
text = streamReader->ReadToEnd();
streamReader->Dispose();
// Ayıklanan metni yazdır
std::cout << "Page: " << pageNumber << "\n";
Console::Write(text);
std::cout << "\n------------------------\n";
pageNumber++;
}
Aspose.PDF for C++ hakkında daha fazlasını öğrenin
Belgeleri kullanarak Aspose.PDF for C++ hakkında daha fazlasını keşfedebilirsiniz.