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ınTextAbsorberPlain-text ekstraksiyon için. - Daha hızlı sonuçlar için tek bir sayfada absorber kabul edin veya
doc.PagesTü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.IsEmbeddedBir 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
| Issue | Cause | Fix |
|---|---|---|
| Çekilen metin çürümüş | PDF standart olmayan kodlama veya CID yazı tipi haritalama kullanır | Yazı 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 null | PDF’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öntem | Description |
|---|---|
TextAbsorber | Tüm metni tek bir çubuk olarak çıkarır |
TextFragmentAbsorber | Konumu ve yazı tipi verileri ile yapılandırılmış metin parçaları çıkarır |
TextFragment | Konumu, metin durumu ve segmentleri ile çalışan bir metnin |
TextFragment.Text | Çekilen metin çubuğu |
TextFragment.Position | Sayfada koordinasyonlar |
TextFragment.TextState | Yazı, boyut ve renk bilgileri |
TextFragment.Segments | Fragman içindeki alt koşu |
TextParagraph | Multi-line metin blokları için yapımcı |
TextState | Yazı adı, boyutu, renk ve tarz özellikleri |
FontRepository | statik yazı tipi arama ve yükleme |
FontRepository.FindFont | Bir yazı tipi adı ile bulmak |