Cari Ekspresi Reguler Dalam File PDF

Perkenalan

Saat menangani dokumen PDF berukuran besar, Anda mungkin menemukan diri Anda mencari pola atau format tertentu seperti tanggal, nomor telepon, atau data terstruktur lainnya. Menelusuri PDF secara manual bisa jadi membosankan, bukan? Di sinilah penggunaan ekspresi reguler (regex) berguna. Dalam tutorial ini, kita akan menjelajahi cara mencari pola ekspresi reguler dalam file PDF menggunakan Aspose.PDF untuk .NET. Panduan ini akan memandu Anda melalui setiap langkah sehingga Anda dapat dengan mudah menerapkannya dalam aplikasi .NET Anda.

Prasyarat

Sebelum kita menyelami tutorial langkah demi langkah, mari kita bahas apa saja yang perlu Anda siapkan:

  • Aspose.PDF untuk .NET: Anda perlu menginstal pustaka ini. Jika Anda belum menginstalnya, Anda dapatunduh disini.
  • IDE: Visual Studio atau IDE lain yang kompatibel dengan C#.
  • .NET Framework: Pastikan proyek Anda disiapkan dengan versi .NET Framework yang sesuai.
  • Pengetahuan dasar tentang C#: Meskipun panduan ini terperinci, pemahaman dasar tentang C# akan sangat membantu.

Paket Impor

Untuk memulainya, Anda perlu mengimpor namespace yang diperlukan dari Aspose.PDF for .NET ke dalam proyek Anda. Paket-paket ini penting untuk bekerja dengan PDF dan melakukan operasi pencarian menggunakan regex.

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

Mari kita uraikan proses pencarian ekspresi reguler dalam berkas PDF menggunakan Aspose.PDF menjadi beberapa langkah.

Langkah 1: Siapkan Direktori Dokumen

Setiap operasi PDF dimulai dengan menentukan lokasi dokumen Anda. Anda perlu menentukan jalur ke file PDF Anda, yang disimpan didataDir variabel.

Langkah 1.1: Tentukan Jalur Dokumen Anda

// Tentukan jalur ke dokumen PDF Anda
string dataDir = "YOUR DOCUMENT DIRECTORY";

Mengganti"YOUR DOCUMENT DIRECTORY" dengan jalur sebenarnya ke berkas PDF Anda. Langkah ini penting karena mengarahkan kode Anda ke berkas yang ingin Anda gunakan.

Langkah 1.2: Buka Dokumen PDF

Selanjutnya, Anda perlu membuka dokumen PDF menggunakanDocument kelas dari Aspose.PDF.

// Buka dokumennya
Document pdfDocument = new Document(dataDir + "SearchRegularExpressionAll.pdf");

Di Sini,"SearchRegularExpressionAll.pdf" adalah contoh berkas PDF tempat kita akan melakukan pencarian regex.

Langkah 2: Siapkan TextFragmentAbsorber

Di sinilah keajaiban terjadi!TextFragmentAbsorber Kelas membantu dalam menangkap fragmen teks yang cocok dengan pola atau ekspresi reguler tertentu.

Mari kita siapkan penyerap untuk menemukan pola menggunakan regex. Dalam kasus ini, kita mencari pola tahun seperti “1999-2000”.

// Buat objek TextAbsorber untuk menemukan semua frasa yang cocok dengan ekspresi reguler
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Seperti tahun 1999-2000

Ekspresi reguler\\d{4}-\\d{4} mencari pola empat digit diikuti tanda hubung dan empat digit lainnya, yang umum untuk rentang tahun.

Langkah 3: Aktifkan Pencarian Ekspresi Reguler

Untuk memastikan bahwa operasi pencarian menafsirkan pola sebagai ekspresi reguler, Anda perlu mengonfigurasi opsi pencarian menggunakanTextSearchOptions kelas.

// Tetapkan opsi pencarian teks untuk menentukan penggunaan ekspresi reguler
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

PengaturanTextSearchOptions ketrue memastikan bahwa penyerap menggunakan pencarian berbasis ekspresi reguler, bukan teks biasa.

Langkah 4: Terima Text Absorber

Pada tahap ini, Anda menerapkan penyerap teks ke dokumen PDF sehingga dapat melakukan operasi pencarian. Ini dilakukan dengan memanggilAccept metode padaPages objek dokumen PDF.

// Terima penyerap untuk semua halaman
pdfDocument.Pages.Accept(textFragmentAbsorber);

Perintah ini memproses semua halaman PDF, mencari teks apa pun yang cocok dengan ekspresi reguler.

Langkah 5: Ekstrak dan Tampilkan Hasilnya

Setelah pencarian selesai, Anda perlu mengekstrak hasilnya.TextFragmentAbsorber menyimpan hasil ini diTextFragmentCollectionAnda dapat mengulang koleksi ini untuk mengakses dan menampilkan setiap fragmen teks yang cocok.

Langkah 5.1: Ambil Fragmen Teks yang Diekstrak

// Dapatkan fragmen teks yang diekstraksi
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

Sekarang setelah Anda mengumpulkan fragmen-fragmen, saatnya untuk mengulanginya dan menampilkan detail yang relevan seperti teks, posisi, detail font, dan banyak lagi.

Langkah 5.2: Ulangi Melalui Fragmen

// Ulangi melalui fragmen
foreach (TextFragment textFragment in textFragmentCollection)
{
    Console.WriteLine("Text : {0} ", textFragment.Text);
    Console.WriteLine("Position : {0} ", textFragment.Position);
    Console.WriteLine("XIndent : {0} ", textFragment.Position.XIndent);
    Console.WriteLine("YIndent : {0} ", textFragment.Position.YIndent);
    Console.WriteLine("Font - Name : {0}", textFragment.TextState.Font.FontName);
    Console.WriteLine("Font - IsAccessible : {0} ", textFragment.TextState.Font.IsAccessible);
    Console.WriteLine("Font - IsEmbedded : {0} ", textFragment.TextState.Font.IsEmbedded);
    Console.WriteLine("Font - IsSubset : {0} ", textFragment.TextState.Font.IsSubset);
    Console.WriteLine("Font Size : {0} ", textFragment.TextState.FontSize);
    Console.WriteLine("Foreground Color : {0} ", textFragment.TextState.ForegroundColor);
}

Untuk setiapTextFragment, detail seperti ukuran font, nama font, dan posisi dicetak. Ini tidak hanya membantu dalam menemukan teks tetapi juga memberi Anda format dan lokasi yang tepat.

Kesimpulan

Nah, itu dia! Mencari pola dalam file PDF menggunakan ekspresi reguler sangatlah hebat, terutama untuk teks terstruktur seperti tanggal, nomor telepon, dan pola serupa. Aspose.PDF untuk .NET menyediakan cara yang mudah untuk melakukan operasi tersebut. Sekarang Anda dapat memanfaatkan kekuatan ekspresi reguler untuk mengotomatiskan pencarian teks PDF, sehingga alur kerja Anda menjadi lebih efisien.

Pertanyaan yang Sering Diajukan

Bisakah saya mencari beberapa pola dalam satu PDF?

Ya, Anda dapat menjalankan beberapaTextFragmentAbsorber objek, masing-masing dengan pola regex yang berbeda, di PDF yang sama.

Apakah Aspose.PDF mendukung pencarian pola tanpa memperhatikan huruf besar/kecil?

Tentu saja! Anda dapat mengonfigurasiTextSearchOptions untuk membuat pencarian tidak peka huruf besar/kecil.

Apakah ada batasan ukuran PDF yang dapat saya cari?

Tidak ada batasan yang ketat, tetapi kinerjanya dapat bervariasi tergantung pada ukuran PDF dan kompleksitas pola regex.

Bisakah saya menyorot teks yang ditemukan dalam PDF?

Ya, Aspose.PDF memungkinkan Anda untuk menyorot atau bahkan mengganti teks setelah ditemukan menggunakan absorber.

Bagaimana cara menangani kesalahan jika pola tidak ditemukan?

Jika tidak ada kecocokan yang ditemukan,TextFragmentCollection akan kosong. Anda dapat menangani skenario ini dengan pemeriksaan sederhana sebelum mengulang hasil.