PDF Dosyasındaki Sütun Metnini Çıkar
giriiş
PDF dosyalarıyla mı çalışıyorsunuz ve belirli bir sütun biçiminde metin çıkarmanız mı gerekiyor? Fatura, rapor veya yapılandırılmış herhangi bir belge işliyor olun, bir PDF’den metni doğru bir şekilde çıkarmak zorlu bir iş olabilir. İşte bu noktada Aspose.PDF for .NET süreci basitleştirmek için devreye giriyor. Bu eğitimde, bir PDF dosyasından metin sütunlarını kolayca nasıl çıkaracağınızı göstereceğiz.
Ön koşullar
Koda dalmadan önce, ihtiyacınız olacak temel şeyleri ele alalım:
- Aspose.PDF for .NET: Aspose.PDF for .NET’in en son sürümünün yüklü olduğundan emin olun. Değilse,buradan indirin.
- Geliştirme Ortamı: Kodla çalışmak için Visual Studio veya başka bir .NET geliştirme ortamına ihtiyacınız olacak.
- PDF Belgesi: Elinizde bir örnek PDF belgesi bulundurun, tercihen metin sütunları olan bir belge olsun, çünkü ondan metin çıkaracağız.
Aspose.PDF for .NET’i henüz yüklemediyseniz, bir tane edinebilirsinizücretsiz deneme veyalisans satın al tüm özellikler için. Ayrıca bir başvuruda bulunabilirsinizgeçici lisans eğer gerekirse.
Ad Alanlarını İçe Aktar
Projenizde Aspose.PDF for .NET’i kullanmak için aşağıdaki ad alanlarını içe aktarmanız gerekir:
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
Adım Adım Kılavuz: PDF’den Metin Sütunlarını Çıkarma
Şimdi, kodun her bir bölümünü daha iyi anlamak için parçalara ayıralım. Sürecin her bir bölümünü açıklayarak adım adım ilerlerken bizi takip edin.
Adım 1: PDF Belgesini Yükleyin
Yapmanız gereken ilk şey PDF dosyanızı yüklemektir.Document
nesne. Aspose.PDF’in belgenizle etkileşimi bu şekildedir.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Document pdfDocument = new Document(dataDir + "ExtractTextPage.pdf");
Bu adımda, PDF belgenizin depolandığı dizini tanımlıyoruz. Değiştir"YOUR DOCUMENT DIRECTORY"
yerel PDF dosyanızın yolu ile.Document
nesne PDF’yi belleğe yükleyerek, daha sonraki işlemler için erişilebilir hale getirir.
Adım 2: Metin Parçası Emicisini Ayarlayın
Daha sonra bir tane kullanacağızTextFragmentAbsorber
PDF dosyasındaki tüm metni emmek veya yakalamak için. Bu emici sınıf, PDF’nizdeki belirli alanlardan metin parçalarını çıkarmak için tasarlanmıştır, bu da onu metin sütunlarını çıkarmak için ideal hale getirir.
TextFragmentAbsorber tfa = new TextFragmentAbsorber();
pdfDocument.Pages.Accept(tfa);
TextFragmentCollection tfc = tfa.TextFragments;
Burada, bir örnek oluşturuyoruzTextFragmentAbsorber
ve bunu PDF’in tüm sayfalarına uygulayınAccept()
.TextFragmentCollection
çıkarılan metni depolar ve bu koleksiyondan ihtiyaç halinde metni işleyebilir veya çıkarabiliriz.
Adım 3: Çıkarılan Metnin Yazı Tipi Boyutunu Ayarlayın
Metin parçalarını yakaladıktan sonra, özellikle orijinal metin çok büyük olduğunda, yazı tipi boyutunu küçültmek isteyebilirsiniz. Bu örnekte, yazı tipi boyutunu %70 oranında küçültüyoruz.
foreach (TextFragment tf in tfc)
{
// Yazı tipi boyutunu %70 oranında azalt
tf.TextState.FontSize = tf.TextState.FontSize * 0.7f;
}
Bu kod her bir döngüde ilerlerTextFragment
koleksiyonda ve yazı tipi boyutunu %70 oranında azaltır. Yazı tipi boyutunu ayarlamak, özellikle farklı amaçlar için biçimlendiriyorsanız, çıkarılan metnin yönetilmesini kolaylaştırabilir.
Adım 4: Belgeyi bir Bellek Akışına Kaydedin
Metni değiştirdikten sonra PDF’yi birMemoryStream
Bu, belgeyi diske geri yazmaya gerek kalmadan daha sonraki işlemler için bellekte tutmamızı sağlar.
Stream st = new MemoryStream();
pdfDocument.Save(st);
pdfDocument = new Document(st);
Burada, PDF’yi bir bellek akışına kaydediyoruz ve ardından belgeyi yeniden yüklüyoruz. Bu yöntem, büyük dosyalarla çalışırken ve gereksiz disk işlemlerinden kaçınmak istediğinizde kullanışlıdır.
Adım 5: Text Absorber’ı Kullanarak Tüm Metni Çıkarın
PDF’yi hazırladığımıza göre, metni çıkarma zamanı geldi. KullanacağızTextAbsorber
Belgedeki tüm metni almak için.
TextAbsorber textAbsorber = new TextAbsorber();
pdfDocument.Pages.Accept(textAbsorber);
String extractedText = textAbsorber.Text;
Bu adımda,TextAbsorber
PDF’den tüm metni alır ve çıkarılan metin şurada saklanır:extractedText
string. Sihrin gerçekleştiği yer burasıdır—metin sütunlarınız artık düz metin biçimindedir!
Adım 6: Çıkarılan Metni Bir Dosyaya Kaydedin
Son olarak, çıkarılan metni bir.txt
Kolay erişim ve daha sonraki kullanım için dosyayı indirin.
dataDir = dataDir + "ExtractColumnsText_out.txt";
System.IO.File.WriteAllText(dataDir, extractedText);
Console.WriteLine("\nColumns text extracted successfully from Pages of PDF Document.\nFile saved at " + dataDir);
Bu kod çıkarılan metni yeni bir dosyaya yazar..txt
dosyayı açar ve belirtilen dizine kaydeder. İşlemin başarılı olduğunu onaylamak için konsolda bir mesaj görüntülenir.
Çözüm
İşte oldu! Aspose.PDF for .NET kullanarak bir PDF dosyasından metin sütunlarını çıkarmak düşündüğünüzden daha kolaydır. Sadece birkaç satır kodla bir PDF yükleyebilir, belirli bir metni çıkarabilir, biçimlendirmeyi ayarlayabilir ve sonuçları bir metin dosyasına kaydedebilirsiniz.
Bu teknik, tablolar, raporlar veya sütunlarda düzenlenmiş herhangi bir içerik gibi yapılandırılmış belgeleri işlemek için inanılmaz derecede kullanışlıdır. Veri çıkarmayı otomatikleştirmeniz veya toplu belgeleri işlemeniz gerekip gerekmediğine bakılmaksızın, Aspose.PDF bunu verimli bir şekilde gerçekleştirmek için gereken araçları sağlar.
SSS
PDF’in belirli sayfalarından metin çıkarabilir miyim?
Evet! DeğiştirebilirsinizTextFragmentAbsorber
belirli sayfaları hedeflemek içinpdfDocument.Pages[pageIndex].Accept(tfa);
Yöntem.
Çok sütunlu bir PDF’te yalnızca bir sütundan metin çıkarmak mümkün müdür?
Evet, ancak metin parçalarının koordinatlarıyla çalışmanız gerekecekTextFragment.Rectangle
belgenin belirli alanlarını hedeflemek için.
Metin çıkarma işleminin doğruluğunu nasıl artırabilirim?
Daha iyi doğruluk için PDF’nin yapısının iyi tanımlandığından emin olun ve karmaşık düzenlere sahip belgelerden kaçının. Ayrıca,TextFragmentAbsorber
Yazı tipi stilleri, boyutları veya bölgelerine göre metin çıkarmak için.
Aspose.PDF taranmış belgelerden metin çıkarmayı destekliyor mu?
Evet, ancak OCR (Optik Karakter Tanıma) teknolojisini kullanmanız gerekecek. Aspose bunun için de araçlar sağlar.
Binlerce sayfadan oluşan büyük PDF dosyalarını nasıl işlerim?
Büyük PDF’ler için, yüksek bellek kullanımını önlemek amacıyla metni birkaç sayfadan tek tek çıkararak belgeyi parçalar halinde işleyin.