Rumah > pembangunan bahagian belakang > C++ > Mengapakah iTextSharp Gagal Mengekstrak Teks Bukan Bahasa Inggeris daripada PDF dengan Betul?

Mengapakah iTextSharp Gagal Mengekstrak Teks Bukan Bahasa Inggeris daripada PDF dengan Betul?

Mary-Kate Olsen
Lepaskan: 2025-01-11 08:00:42
asal
658 orang telah melayarinya

Why Does iTextSharp Fail to Extract Non-English Text from PDFs Correctly?

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>
Salin selepas log masuk
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan