Jika PDF kelihatan betul tetapi menampal ke dalam editor teks biasa menghasilkan aksara yang berbeza, semak punca sebelum menukar fon atau menjalankan OCR. Pemetaan antara bentuk yang dilukis pada halaman dan watak yang diwakilinya mungkin salah. Membetulkan ralat teks PDF ini bermula dengan mengenal pasti bahagian mana proses itu gagal.
Mengapa teks boleh kelihatan betul tetapi salin salah?
Kandungan teks PDF boleh menyimpan kod aksara sumber khusus fon dan bukannya teks Unicode. Pembaca PDF menggunakan fon dan maklumat pengekodan untuk mencari dan melukis glif. Menyalin juga memerlukan menterjemah kod tersebut ke dalam aksara yang bermakna.
Oleh itu, lukisan huruf A tidak menjamin bahawa pengekstrakan akan mengembalikan A. ToUnicode ialah pemetaan dalam kamus fon yang mengaitkan kod aksara sumber PDF dengan jujukan aksara Unicode. Perbezaan antara memaparkan dan mengekstrak teks ini diterangkan dalam Rujukan Adobe PDF, bahagian 5.9.

Apakah maksud pemetaan fon sebenarnya?
Ketiga-tiga konsep ini berkaitan, tetapi mereka tidak boleh ditukar ganti:
| Pemetaan | Peranan utama |
|---|---|
Jadual cmap di dalam fail fon | Peta kod aksara kepada indeks glif; Subjadual Unicode menggunakan kod Unicode |
| Pengekodan PDF; fon komposit boleh menggunakan Encoding CMap | Mentafsir kod aksara sumber PDF dan membantu mencari glyph untuk dilukis |
PDF ToUnicode | Peta PDF kod aksara sumber kepada teks Unicode untuk penyalinan dan pengekstrakan |
Untuk jenis pertama, lihat OpenType cmap spesifikasi. Pembaikan yang dibincangkan di sini menyasarkan yang ketiga; ia tidak membina semula fail fon atau menggantikan glyph pada halaman.
Pemetaan ToUnicode yang hilang tidak selalu menyebabkan teks bercelaru. Pembaca PDF kadangkala boleh memulihkan teks daripada pengekodan standard, nama glyph yang diketahui atau koleksi aksara. Sebaliknya, jadual pemetaan boleh wujud dan masih mengandungi perkaitan yang salah.
Mula-mula semak sama ada pemetaan adalah masalah
Salin petikan pendek ke dalam editor teks biasa dan bandingkan dengan halaman asal:
| simptom | Apa yang perlu diperiksa dahulu |
|---|---|
| Halaman itu kelihatan betul, tetapi aksara yang disalin secara konsisten bertukar menjadi aksara lain | Pemetaan aksara tiada atau salah |
| Anda boleh memilih hanya imej, bukan teks | Lapisan teks atau teks yang hilang ditukar kepada garis besar; pertimbangkan fail sumber atau OCR |
| Teks boleh dipilih pada halaman yang diimbas, tetapi ia tidak sepadan dengan imej | Pengecaman menghasilkan lapisan teks OCR |
| Aksara individu adalah betul, tetapi lajur atau jadual tidak teratur | Tertib bacaan dan pengekstrakan susun atur |
| Halaman itu sendiri mengandungi aksara atau kotak yang hilang | Sumber fon, liputan glif atau pengekodan paparan |
Ini adalah petunjuk penyelesaian masalah, bukan diagnosis berdasarkan penampilan sahaja. Pembenaman fon dan penyalinan yang betul juga merupakan kebimbangan yang berasingan; lihat PDF pembenaman fon dan subset.
Bagaimanakah anda boleh membetulkan teks yang disalin menggunakan glif asal?
Katakan kod sumber <0001> dalam fon tertentu menarik A tetapi tersalah memetakan kepada 错 (U+9519). Ini ialah serpihan pemetaan ilustrasi, bukan fail CMap yang lengkap:
Before: <0001> <9519>
After: <0001> <0041>
<0001> ialah kod sumber PDF dalam fon itu, bukan aksara Unicode U+0001. Memetakannya kepada U+0041 menentukan bahawa mesin terbang mewakili A. ligature (beberapa huruf berkongsi satu mesin terbang) juga mungkin perlu memetakan kepada beberapa aksara Unicode, seperti fi.
Setelah anda mengesahkan bahawa pembaikan pemetaan adalah sesuai, gunakan Alat pembaikan teks PDF:
- Pilih PDF, kemudian pilih fon untuk dibetulkan.
- Bandingkan glif asal dalam grid dan masukkan teks yang betul di bawah setiap glif.
- Eksport PDF yang telah dibaiki dan simpan yang asal sebagai perbandingan.
Perubahan dikenakan di mana-mana fon dan kod sumber yang sama digunakan. Semak fon yang berbeza secara berasingan, walaupun apabila nama mereka sepadan. Jika OCR salah mengenali hanya satu perkataan, memetakan semula aksara secara global juga boleh merosakkan teks yang sudah betul.
Bagaimanakah anda mengesahkan pembaikan?
Buka semula fail yang dieksport dan salin dan cari teks sampel dalam pembaca PDF sasaran anda. Semak kejadian lain bagi kod dan fon yang sama yang anda tidak edit. Bandingkan penampilan halaman dan periksa tanda baca, pengikat dan nombor, dan bukannya menguji hanya aksara pertama yang salah.
Sesetengah PDF juga menggunakan ActualText untuk membekalkan teks gantian, yang mungkin lebih disukai oleh perisian sokongan. Jika menukar ToUnicode tidak menyelesaikan masalah, semak penggantian ini. Alat semasa memberi amaran tentang ActualText tetapi tidak mengeditnya. Lihat PDF Penjelasan Persatuan.
Untuk ralat OCR, betulkan atau kenali lapisan teks sekali lagi. Jika anda mempunyai fail reka letak asal, pertimbangkan untuk membetulkannya dan mengeksport PDF baharu. Fail yang tidak akan membuka atau mencetuskan ralat struktur memerlukan pendekatan yang berbeza; lihat apabila pembaikan format PDF sesuai.
Sebaik sahaja anda telah mengenal pasti masalah pemetaan aksara fon, betulkan dengan alat pembaikan teks PDF setempat. Fail diproses dalam penyemak imbas anda tanpa memuat naiknya. Anda masih harus mengesahkan teks yang disalin dan penampilan halaman selepas mengeksport.


