Ekstraksi Teks

Ekstraksi Teks

Ekstraksi Teks

Aspose.PDF FOSS for .NET provides several mechanisms for extracting text from Halaman PDF. TextFragmentAbsorber adalah alat utama ia memindai konten halaman dan pengembalian terstruktur TextFragment objek dengan posisi, font, dan gaya informasi.


Ekstraksi teks dasar

TextAbsorber Mengekstrak semua teks dari halaman atau dokumen sebagai satu string.

using var doc = Document.Open(pdfBytes);

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

string pageText = absorber.Text;

Mengekstrak fragmen teks

TextFragmentAbsorber Setiap produk memberikan hasil yang terstruktur. TextFragment mencakup teks yang diekstraksi, posisinya pada halaman, dan rincian font.

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}");
}

Mencari dengan ekspresi reguler

Melalui pola regex ke TextFragmentAbsorber untuk menemukan teks tertentu.

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}");
}

Segmen teks

Each TextFragment dapat mengandung beberapa TextSegment objek ketika teks mencakup berbagai font.

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

Manajemen font

FontRepository menyediakan metode untuk menemukan dan memuat font.

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

Paragraf teks bangunan

TextParagraph memungkinkan membangun blok teks multi-baris untuk dimasukkan ke dalam halaman.

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

Tips dan Praktik Terbaik

  • Penggunaan TextFragmentAbsorber saat Anda membutuhkan data posisi dan font; gunakan TextAbsorber untuk ekstraksi teks biasa.
  • Menerima absorber pada satu halaman untuk hasil yang lebih cepat, atau di atas kertas. doc.Pages untuk mencari seluruh dokumen.
  • Pencarian ekspresi reguler bersifat sensitif terhadap huruf besar secara default digunakan (?i) Prefix untuk pencocokan tanpa sensitivitas huruf besar.
  • Check TextState.Font.IsEmbedded untuk menentukan apakah font tertanam dalam PDF.
  • Untuk dokumen besar, proses halaman satu per satu untuk mengelola penggunaan memori.

Masalah Umum

IssueCausePerbaiki
Teks yang diekstrak tidak jelas.PDF menggunakan kodean font non-standar atau pemetaan CIDPeriksa font embedding; beberapa PDF yang dipindai membutuhkan OCR
Tidak ada fragmen teks yang ditemukan.Konten halaman adalah gambar, bukan teksGunakan alat OCR untuk mengonversi halaman gambar menjadi teks terlebih dahulu
Regex tidak mengembalikan pencocokanPola tidak memperhitungkan ruang putih yang dimasukkan oleh tata letak teks PDFNormalisasi ruang putih atau gunakan pola yang lebih longgar
TextState.Font adalah nolSumber font hilang dari PDFMengatasi pemeriksaan nol saat memeriksa sifat font

FAQ

Bisakah saya mengekstrak teks dari wilayah tertentu halaman?

Ya, sudah diatur. TextFragmentAbsorber.TextSearchOptions.Rectangle untuk membatasi pencarian. ke area tertentu dari halaman.

Apakah ekstraksi teks menjaga urutan membaca?

Perpustakaan mengembalikan teks dalam urutan aliran konten. Untuk tata letak multi-kolom, Anda mungkin perlu mengurutkan fragmen berdasarkan posisi.

Bisakah saya mengekstrak teks dari semua halaman sekaligus?

Ya, telepon. doc.Pages.Accept(absorber) untuk mencari setiap halaman dalam dokumen.


Ringkasan Referensi API

Kelas / MetodeDescription
TextAbsorberMengekstrak semua teks sebagai satu string
TextFragmentAbsorberMengekstrak fragmen teks terstruktur dengan posisi dan data font
TextFragmentSebuah teks berjalan dengan posisi, status teks, dan segmen
TextFragment.TextString teks yang diekstraksi
TextFragment.PositionKoordinat pada halaman
TextFragment.TextStateInformasi font, ukuran dan warna
TextFragment.SegmentsSub-run dalam fragmen
TextParagraphBuilder untuk blok teks berulang-ulang
TextStateNama font, ukuran, warna dan gaya properti
FontRepositoryPencarian dan pemuatan font statis
FontRepository.FindFontCarilah font dengan nama

See Also

 Bahasa Indonesia