Metin Çıkarma

Metin Çıkarma

Aspose.PDF FOSS for .NET provides several mechanisms for extracting text from PDF sayfaları. TextFragmentAbsorber Ana araç - sayfa içeriğini tarar Geri dönüş yapılmıştır. TextFragment pozisyon, yazı tipi ve tarzı nesneler Bilgi için.


Temel metin ekstraksiyonu

TextAbsorber Bir sayfadan veya belgenin tek bir çubuk olarak tüm metni çıkarır.

using var doc = Document.Open(pdfBytes);

var absorber = new TextAbsorber();
doc.Pages[1].Accept(absorber);

string pageText = absorber.Text;

Fragmanları Yazma

TextFragmentAbsorber Yapılandırılmış sonuçlar sağlar. her bir TextFragment Çekilen metin, sayfasında yerini ve yazı tipi ayrıntılarını içerir.

using var doc = Document.Open(pdfBytes);

var absorber = new TextFragmentAbsorber();
doc.Pages[1].Accept(absorber);

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Text: {fragment.Text}");
    Console.WriteLine($"Position: ({fragment.Position.XIndent}, {fragment.Position.YIndent})");
    Console.WriteLine($"Font: {fragment.TextState.Font.FontName}");
}

Düzenli ifadelerle arama yapın

Regex modelini kullanın TextFragmentAbsorber Özel bir yazı bulmak için.

var absorber = new TextFragmentAbsorber(@"\d{3}-\d{2}-\d{4}");
doc.Pages.Accept(absorber);  // Search all pages

foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

Yazı segmentleri

Each TextFragment Çok sayıda içerebilir TextSegment Konu: Metin Yazıldığında Farklı yazıları kullanır.

foreach (var fragment in absorber.TextFragments)
{
    foreach (var segment in fragment.Segments)
    {
        Console.WriteLine($"Segment: {segment.Text}, Font: {segment.TextState.Font.FontName}");
    }
}

Font Yönetimi

FontRepository Yazıları bulma ve yükleme yöntemleri sağlar.

var font = FontRepository.FindFont("Helvetica");

Tekstil Paragrafları Yapımı

TextParagraph • Birden fazla metin bloklarının oluşturulmasını sağlar. Bir sayfa .

var paragraph = new TextParagraph();
paragraph.AppendLine(new TextFragment("First line"));
paragraph.AppendLine(new TextFragment("Second line"));

İpuçları ve En İyi Uygulamalar

  • Kullanım TextFragmentAbsorber • Konumu ve yazı tipi verilerine ihtiyacınız olduğunda; kullanın TextAbsorber Plain-text ekstraksiyon için.
  • Daha hızlı sonuçlar için tek bir sayfada absorber kabul edin veya doc.Pages Tüm belgeyi aramak için.
  • Düzenli ifade arama varsayılan olarak durum hassas - kullanımı (?i) durum hassas eşleşme için bir önizleme.
  • Check TextState.Font.IsEmbedded Bir yazı tipi PDF’ye yerleştirildiğini belirlemek için.
  • Büyük belgeler için, hafıza kullanımını yönetmek için sayfaları bir kez işlemeyin.

ortak sorunlar

IssueCauseFix
Çekilen metin çürümüşPDF standart olmayan kodlama veya CID yazı tipi haritalama kullanırYazı yazısı içeriğini kontrol edin; bazı taranan PDF’ler OCR gerektirir
Hiçbir yazı parçası bulunamadıSayfa içeriği bir görüntü, metin değil.Bir OCR aracını kullanarak görüntü sayfalarını ilk metin haline dönüştürmek için
Regex maçları geri getirmediŞekil, PDF metin düzeniyle girilen beyaz alan için hesaplanmaz.Beyaz alanı normalleştirin veya bir yumuşak desen kullanın
TextState.Font 0 nullPDF’den kaybolan yazı tipi kaynaklarıNotlar kontrol ederken sıfır kontrolleri ele alın

FAQ

Bir sayfadan bir bölgeye yazım çıkarabilir miyim?

Evet Set TextFragmentAbsorber.TextSearchOptions.Rectangle Arama sınırlaması Sayfanın belirli bir alanı.

Yazı Ekstraksiyonu Okuma Düzenini Korur mu?

Kütüphane, içerik akışında metni geri getirir. çok sütunlu düzenler için bölümleri konumuna göre sıralamak gerekebilir.

Tüm sayfalarımdan tek seferde bir yazı çıkarabilir miyim?

Evet Çağrı doc.Pages.Accept(absorber) Belgenin her sayfası için arama yapın.


API Referans Özetleri

Sınıf / YöntemDescription
TextAbsorberTüm metni tek bir çubuk olarak çıkarır
TextFragmentAbsorberKonumu ve yazı tipi verileri ile yapılandırılmış metin parçaları çıkarır
TextFragmentKonumu, metin durumu ve segmentleri ile çalışan bir metnin
TextFragment.TextÇekilen metin çubuğu
TextFragment.PositionSayfada koordinasyonlar
TextFragment.TextStateYazı, boyut ve renk bilgileri
TextFragment.SegmentsFragman içindeki alt koşu
TextParagraphMulti-line metin blokları için yapımcı
TextStateYazı adı, boyutu, renk ve tarz özellikleri
FontRepositorystatik yazı tipi arama ve yükleme
FontRepository.FindFontBir yazı tipi adı ile bulmak

See Also

 Türkçe