PDF Dosyasındaki Sayfa Bölgesinden Metni Çıkar

giriiş

PDF’lerle çalışmak, ister formlardan, tablolardan veya bir belgenin belirli bölümlerinden veri çekmek olsun, genellikle belirli içerikleri çıkarmayı gerektirir. Bu eğitimde, .NET için Aspose.PDF kullanarak bir PDF’nin belirli bir bölgesinden metnin nasıl çıkarılacağını ele alacağız. Tüm bir belgeyi elemek yerine, metnin tam olarak nerede bulunduğunu belirleyip verimli bir şekilde çıkaracağız.

Ön koşullar

Koda geçmeden önce aşağıdaki öğelerin yerinde olduğundan emin olun:

  1. Aspose.PDF for .NET: Eğer henüz yapmadıysanız, Aspose.PDF for .NET kütüphanesini indirip kurun..NET için Aspose.PDF’yi indirin.
  2. IDE: Visual Studio gibi herhangi bir .NET geliştirme ortamı.
  3. .NET Framework: Projenizin uygun .NET Framework ile kurulduğundan emin olun.
  4. PDF Belgesi: Metni çıkaracağımız örnek PDF.

Bunu yapabileceğini unutmaücretsiz deneme alın Aspose.PDF’yi kullanın veyageçici lisans tam işlevsellik için.

Gerekli Paketleri İçe Aktarma

Aspose.PDF for .NET ile çalışmaya başlamak için, gerekli ad alanlarını projenize aktarmanız gerekir. Bu paketler, PDF belgelerini işlemek için gerekli sınıfları ve yöntemleri sağlar.

using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;

Adım 1: Belge Dizinini Ayarlama ve PDF’yi Yükleme

İlk adım PDF dosyanızın nerede bulunduğunu belirtmek ve onu projenize yüklemektir. Çalışmak istediğiniz PDF dosyasına yerel bir dizin yolu kullanabilirsiniz.

// Belgeler dizinine giden yol.
string dataDir = "YOUR DOCUMENT DIRECTORY";

// PDF belgesini açın
Document pdfDocument = new Document(dataDir + "ExtractTextAll.pdf");

Bu adım, PDF dosyasının düzgün bir şekilde yüklendiğinden ve üzerinde çalışılmaya hazır olduğundan emin olmanızı sağlar.Document Aspose.PDF kütüphanesinden gelen sınıf, PDF dosyasını düzenlemenize olanak tanır.

Adım 2: Çıkarım için Metin Emiciyi Başlatın

Bu adımda bir tane oluşturuyoruzTextAbsorber PDF belgesinden metin çıkarmak için tasarlanmış nesne.TextAbsorber esnektir ve belirli bölgelere veya sayfalara odaklanacak şekilde özelleştirilebilir.

// Metni çıkarmak için bir TextAbsorber nesnesi oluşturun
TextAbsorber absorber = new TextAbsorber();

TheTextAbsorberclass, belirttiğiniz sınırlar içerisindeki tüm metni yakalayan güçlü bir araçtır.

Adım 3: Metnin Çıkarılacağı Bölgeyi Tanımlayın

İşte sihir burada gerçekleşir. Metni tüm sayfadan çekmek yerine, çıkarmayı sayfanın belirli bir dikdörtgen bölgesiyle sınırlayabiliriz. İçeriğinizin tam olarak nerede bulunduğunu bildiğinizde bu mükemmeldir.

// Metin çıkarmayı belirli bir bölgeyle sınırla
absorber.TextSearchOptions.LimitToPageBounds = true;
absorber.TextSearchOptions.Rectangle = new Aspose.Pdf.Rectangle(100, 200, 250, 350);

TheRectangle nesne, metnin çıkarılacağı alanın koordinatlarını (nokta cinsinden) tanımlamanıza olanak tanır.TextSearchOptions.LimitToPageBounds yalnızca belirtilen dikdörtgenin içindeki metnin çıkarılmasını sağlar.

Adım 4: İstenilen Sayfada Absorber’ı Kabul Edin

Bölgeyi kurduktan sonraki adım, kabul etmektir.TextAbsorber Metni çıkarmak istediğiniz belirli sayfa için. Burada, PDF’nin ilk sayfasına odaklanacağız.

// İlk sayfa için emiciyi kabul edin
pdfDocument.Pages[1].Accept(absorber);

ArayarakAccept Sayfadaki yöntemi kullanarak, Aspose.PDF’e emiciyi çalıştırmasını ve tanımlanan bölgeden metni toplamasını talimat veriyoruz.

Adım 5: Çıkarılan Metni Alın ve Saklayın

Emici işini yaptıktan sonra, çıkarılan metni toplama ve kaydetme zamanı gelir. Bu adım, metni alıp bir.txt dosya.

// Çıkarılan metni alın
string extractedText = absorber.Text;

// Çıkarılan metni kaydetmek için bir yazar oluşturun
TextWriter tw = new StreamWriter(dataDir + "extracted-text.txt");

// Metni dosyaya yaz
tw.WriteLine(extractedText);

// Akışı kapat
tw.Close();

Burada,TextWriter sınıf, çıkarılan metni bir metin dosyasına yazmak için kullanılır. Bu, çıkarılan içeriğinizin daha sonraki kullanım için güvenli bir şekilde saklanmasını sağlar.

Çözüm

PDF belgesindeki belirli bir bölgeden metin çıkarmak, özellikle formlar veya tablolar gibi yapılandırılmış içeriklerle uğraşırken inanılmaz derecede yararlı olabilir. .NET için Aspose.PDF’yi kullanarak, bu görevi yalnızca birkaç satır kodla gerçekleştirebilirsiniz. Bir bölge tanımlayarak, birTextAbsorberve çıkarılan metni kaydederek, PDF’inizden neyin çıkarılacağı konusunda tam kontrole sahip olursunuz.

İster küçük bir proje üzerinde çalışın ister büyük belgeleri yönetin, bu yöntem tüm belgeyi taramadan PDF’lerinizden ilgili verileri çıkarmanın etkili bir yolunu sunar.

SSS

Birden fazla sayfadan aynı anda metin çıkarabilir miyim?

Evet, yineleme yoluylaPages koleksiyonupdfDocument , uygulayabilirsinizTextAbsorber birden fazla sayfaya.

Peki ya metin PDF’in farklı bir bölgesindeyse?

Kolayca ayarlayabilirsinizRectangle Metninizin bulunduğu bölgeye uyacak şekilde koordinatlar.

Bu taranmış PDF’lerde de işe yarıyor mu?

Hayır, taranmış PDF’lerin görüntüleri metne dönüştürmek için OCR’ye (Optik Karakter Tanıma) ihtiyacı vardır. Aspose.PDF ayrıca OCR özellikleri de sunar.

Belirli anahtar kelimelere dayalı metin çıkarmanın bir yolu var mı?

Evet, kullanabilirsinizTextFragmentAbsorber Anahtar kelime tabanlı metin çıkarımı için.

Şifrelenmiş bir PDF’den metni nasıl çıkarabilirim?

Öncelikle doğru şifreyi girerek PDF’i şifresini çözmeniz, ardından metin çıkarma işlemine geçmeniz gerekecektir.