iTextSharp dan PDF Berbilang Bahasa: Menyelesaikan Isu Pengekstrakan Teks Bukan Bahasa Inggeris
Mengekstrak teks daripada PDF berbilang bahasa boleh menjadi rumit. iTextSharp, walaupun berkesan dengan teks bahasa Inggeris, sering bergelut dengan aksara bukan bahasa Inggeris, mengakibatkan teks rosak atau hilang. Mari kita kaji masalah dan penyelesaiannya.
Masalahnya: Watak Bukan Bahasa Inggeris Bercelaru
Senario biasa melibatkan percubaan mengekstrak teks Parsi atau Arab daripada PDF menggunakan iTextSharp. Kod berfungsi dengan betul untuk bahasa Inggeris, tetapi aksara bukan bahasa Inggeris kelihatan hancur atau tidak lengkap.
Punca Punca: Ralat Pengekodan
Isu teras terletak pada cara rentetan dikendalikan dan dikodkan dalam rangka kerja .NET. Rentetan .NET sememangnya Unicode. Penukaran pengekodan yang tidak perlu membawa kepada kerosakan data.
Coretan kod yang bermasalah selalunya kelihatan seperti ini:
<code class="language-csharp">currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));</code>
Proses penukaran pengekodan berbilang ini adalah punca masalah.
Penyelesaian: Permudahkan Pengekodan
Penyelesaian adalah sangat mudah: alih keluar baris penukaran pengekodan berlebihan:
<code class="language-csharp">currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));</code>
Dengan menghapuskan baris ini, perwakilan Unikod asal dikekalkan. Selain itu, pastikan aplikasi anda menyokong Unicode dan anda menggunakan versi iTextSharp semasa.
Melebihi Pengekodan: Pertimbangan Susunan Teks
Sementara menyelesaikan pengekodan membetulkan rasuah aksara, ia tidak menangani isu pesanan teks yang berpotensi. Bahasa kanan ke kiri (seperti bahasa Arab dan Ibrani) mungkin dipaparkan dalam susunan terbalik dalam PDF. Mengendalikan ini dengan betul memerlukan logik penghuraian tambahan untuk menyusun semula teks dengan sewajarnya.
Atas ialah kandungan terperinci Mengapakah iTextSharp Gagal Mengekstrak Teks Bukan Bahasa Inggeris daripada PDF dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!