Mengekstrak Teks dari PDF menggunakan OCR di C#

Ikhtisar

Ekstraksi teks biasa membaca lapisan teks dari dokumen PDF. Ketika sebuah halaman berupa gambar hasil pindaian atau tidak memiliki teks yang dapat dipilih, kelas seperti TextFragmentAbsorber tidak mengembalikan apa pun, karena tidak ada teks yang dapat dibaca.

Untuk kasus seperti ini, Aspose.PDF for .NET menyediakan kelas OcrTextAbsorber (namespace Aspose.Pdf.Ocr). Kelas ini mengenali teks biasa pada halaman dokumen PDF apa pun menggunakan OCR (Optical Character Recognition) dan mengembalikannya sebagai string. Kelas ini mengikuti pola standar Aspose.PDF absorber/visitor, sehingga terhubung ke titik masuk Accept yang sama seperti absorber lainnya.

Mengenali Teks pada Satu Halaman PDF

Buat OcrTextAbsorber, panggil metode Accept dari halaman, dan baca hasilnya dari properti Text. Panggilan absorber.Visit(page) adalah padanan langsung dari page.Accept(absorber).

Mengenali Teks di Seluruh Dokumen PDF

Panggil metode Accept dari koleksi Pages untuk mengenali setiap halaman. Teks yang dikenali dari setiap halaman digabungkan menggunakan pemisah halaman dari opsi.

Mengonfigurasi Opsi Pengenalan

Pengenalan dikonfigurasi dengan objek OcrTextRecognitionOptions yang diteruskan ke konstruktor. Opsi yang sama juga tersedia setelah pembuatan melalui properti Options dari absorber, dan mengubahnya memengaruhi panggilan pengenalan berikutnya.

Anggota Default Arti Validasi
Language OcrLanguage.English Bahasa pengenalan.
Resolution 300 Resolusi pengenalan, dalam DPI. Rentang praktis ~200–600. Nilai yang lebih tinggi memakan lebih banyak memori/CPU dengan sedikit peningkatan akurasi. Melempar ArgumentOutOfRangeException jika <= 0.
PageSeparator "\n\n" Disisipkan di antara teks yang dikenali dari halaman berturut-turut (tidak sebelum halaman pertama). string.Empty menggabungkan halaman tanpa jeda. Melempar ArgumentNullException jika diatur ke null.

Deteksi Bahasa Otomatis

Ketika bahasa dokumen tidak diketahui, atur Language ke OcrLanguage.Auto untuk mendeteksinya secara otomatis. Bahasa pengenalan dipilih dengan enumerasi OcrLanguage, yang mendukung Inggris (default), Arab, Mandarin, Prancis, Jerman, Indonesia, Italia, Jepang, Kazakh, Korea, Polandia, Portugis, Rusia, Spanyol, Ukraina, dan Auto.

Bagaimana Hasil Pengenalan Dikembalikan

  • Text diganti, bukan diakumulasikan. Setiap panggilan Accept/Visit menimpa Text dengan hasil panggilan tersebut; baca setelah setiap panggilan untuk menyimpan beberapa hasil. Nilainya string.Empty sebelum panggilan pertama dan untuk dokumen tanpa halaman.
  • Penggabungan beberapa halaman. Teks tiap halaman digabungkan menggunakan Options.PageSeparator (default "\n\n"); tidak ada pemisah yang ditambahkan sebelum halaman pertama. string.Empty menggabungkan halaman tanpa jeda.
  • Resolusi. 300 DPI adalah default dan titik optimal praktis; ~200–600 adalah rentang yang berguna.