PDF dapat dilihat tetapi tidak dapat disalin, mungkin bukan pindaian: periksa lapisan teks dan pemetaan karakter terlebih dahulu

Jika tidak ada teks, tidak dapat langsung dinilai sebagai "lapisan teks normal", juga tidak dapat langsung dinilai sebagai salinan pindaian. Teks, karakter alternatif, dan referensi gambar halaman masing-masing dicatat di bawah, dan status yang akan ditinjau adalah keluaran; referensi gambar tidak membuktikan bahwa gambar telah menutupi seluruh halaman atau teks dapat diidentifikasi.

Jika Anda dapat melihat teks dalam PDF tetapi tidak dapat menyalinnya, mungkin itu bukan salinan pindaian, atau mungkin ada masalah dengan pemetaan karakter. Artikel ini ditulis untuk pengembang dan pemroses dokumen yang perlu mengekstrak, menerjemahkan, atau menyusun konten PDF. Setelah membaca, Anda akan mengetahui cara membedakan masalah tingkat teks dan konten gambar terlebih dahulu, dan menggunakan sinyal terpadu untuk menentukan apa yang harus dilakukan selanjutnya.

Kode dan contoh di sini menggunakan sampel sintetis yang telah lulus pemeriksaan sampel di lingkungan terisolasi dan tidak mewakili jaminan semua file atau kinerja produk sebenarnya. Sebelum memproses dokumen penting, harap simpan dokumen asli dan tinjau sesuai dengan batasan dan item penerimaan dalam teks.

PDF dapat dilihat tetapi tidak dapat disalin. Apakah itu salinan pindaian? Kesimpulan satu kalimat

Tidak bisa menilai secara langsung. Periksa lapisan teks dan pemetaan karakter terlebih dahulu, lalu lihat gambar halaman, dan terakhir tentukan apakah itu pemindaian atau kegagalan pemetaan.

situasi AndaPraktik yang direkomendasikanalasan
Dapat melihat teks, menyalin karakter yang kacau atau spasi kosongPeriksa pemetaan ToUnicode dan pengkodean fontVisualnya normal tetapi lapisan teksnya rusak, sebagian besar karena pemetaan yang hilang atau salah.
Karakter yang disalin terlihat masuk akal tetapi memiliki semantik yang salahPeriksa hasil ekstraksi terhadap konten visualPemetaan heuristik mungkin menghasilkan karakter yang salah dan lolos pemeriksaan non-null
Tidak ada teks, tapi ada gambar di halamannyaPeriksa apakah gambar berisi teks dan kemudian tentukan apakah OCR diperlukanKutipan gambar tidak sama dengan pemindaian satu halaman penuh, juga tidak membuktikan teks dapat dibaca
Baik teks maupun gambar tidak diperiksaLihat konten gambar halamanTidak ada cara untuk menyimpulkan bahwa halaman tersebut kosong

Mengapa kode yang disalin kacau?

Pengguna dapat melihat teks secara normal di browser atau pembaca, tetapi teks yang disalin berupa simbol yang kacau, kosong, atau tidak relevan. Ini biasanya bukan file yang rusak, juga bukan salinan pindaian. Penyebab utamanya adalah tabel pemetaan glyph (Glyph) ke Unicode (ToUnicode CMap) di dalam PDF hilang atau salah.

Mesin rendering mengandalkan indeks mesin terbang untuk menggambar konten visual, sementara alat ekstraksi teks dan papan klip mengandalkan tabel pemetaan untuk memulihkan karakter semantik. Ketika keduanya rusak, lapisan teks buruk yang "normal secara visual, tidak dapat dibaca mesin" akan muncul.

Sebelum melakukan penerjemahan dokumen atau ekstraksi terstruktur, Anda perlu memastikan terlebih dahulu apakah masalahnya terletak pada pemetaan atau apakah halaman itu sendiri adalah gambar. Jika tidak, proses OCR atau NLP selanjutnya akan didasarkan pada premis yang salah.

Mekanisme pemutusan antara indeks mesin terbang dan pemetaan Unicode

Spesifikasi PDF memungkinkan font untuk menyematkan hanya garis besar mesin terbang dan informasi lebar, tetapi tidak pemetaan pengkodean karakter. Kondisi berikut ini dapat menyebabkan kerusakan:

  • Perangkat lunak yang menghasilkan PDF tidak menulis tabel ToUnicode dengan benar
  • Pengkodean khusus digunakan tetapi tidak ada aturan penguraian kode yang disediakan

Saat ini ekstraktor hanya bisa mendapatkan glyph ID (CID) asli. ID ini berarti bagi perender tetapi tidak memiliki nilai untuk pemrosesan teks.

Beberapa alat menggunakan heuristik untuk menebak pemetaan, dan hasilnya mungkin berupa karakter yang tampak masuk akal namun sebenarnya salah, seperti mengubah tanda baca China menjadi huruf Latin, atau mengganti angka dengan karakter kontrol. Jenis "teks tiruan" ini lebih halus daripada spasi putih murni karena dapat melewati pemeriksaan non-null, namun akan menyebabkan polusi data senyap di tautan hilir.

Kunci untuk menilai masalah tersebut bukanlah untuk melihat apakah teks dapat dipilih, tetapi untuk memverifikasi apakah string yang diekstraksi konsisten secara semantik dengan konten visual.

Gunakan PyMuPDF untuk diagnostik sintesis memori

Kode berikut membuat masukan dalam memori dan memverifikasi logika diagnostik:

from io import BytesIO
from PIL import Image
import pymupdf
def inspect(page):
    text = page.get_text().strip()
    images = page.get_images()
    if "\ufffd" in text:
        state = "review_replacement_characters"
    elif text:
        state = "text_present_needs_semantic_review"
    elif images:
        state = "image_without_extracted_text"
    else:
        state = "empty_text_needs_review"
    return {"state": state, "characters": len(text), "image_refs": len(images)}
with pymupdf.open() as doc:
    doc.new_page().insert_text((50, 50), "Text sample")
    doc.new_page()
    picture = BytesIO()
    Image.new("RGB", (16, 16), "red").save(picture, format="PNG")
    doc.new_page().insert_image(pymupdf.Rect(10, 10, 100, 100), stream=picture.getvalue())
    assert inspect(doc[0])["state"] == "text_present_needs_semantic_review"
    assert inspect(doc[1])["state"] == "empty_text_needs_review"
    assert inspect(doc[2])["state"] == "image_without_extracted_text"
    assert inspect(doc[2])["characters"] == 0

Dalam kode di atas, fungsi diagnose_text_layer memperoleh teks asli melalui get_text("text"), menggunakan unicodedata.category untuk memfilter karakter kontrol dan karakter spasi, dan menghitung proporsi konten efektif. Pada saat yang sama, ia mendeteksi keberadaan blok gambar melalui get_text("blocks").

Kedua pernyataan tersebut memverifikasi dua kasus: dokumen normal dengan tingkat kemampuan cetak lebih tinggi dari 0,9, dan dokumen yang dipindai dengan jumlah karakter nol. Ini mencakup logika percabangan inti.

Penting untuk dicatat bahwa diagnosis ini hanya didasarkan pada karakteristik statistik. Untuk font terenkripsi atau pengkodean khusus, tinjauan manual masih diperlukan.

📊 Perbandingan inti

Tabel berikut mencantumkan arah pemeriksaan terkait dengan sinyal yang berbeda dan kesimpulan yang tidak boleh diambil:

SinyalLangkah selanjutnya untuk memeriksakesimpulan yang tidak boleh diambil
Ada teks yang dapat dicetakPeriksa semantik, urutan dan sumberKalau bisa diekstrak berarti benar.
Ada karakter alternatifTinjau pengkodean dan pemetaan fontSemua karakter hilang
Ada gambar tapi tidak ada teksPeriksa apakah gambar berisi teksItu harus berupa pemindaian seluruh halaman
Baik teks maupun gambar tidak terdeteksiLihat konten gambar halamanHarus berupa halaman kosong

🎯 Metode mana yang cocok untuk Anda?

Jika Anda dapat melihat teks tetapi tidak dapat menyalinnya

Prioritaskan pemeriksaan pemetaan ToUnicode dan pengkodean font, yang biasanya disebabkan oleh pemetaan yang rusak.

Jika teks yang disalin terlihat normal tetapi isinya salah

Gunakan konten visual untuk membandingkan hasil ekstraksi segmen demi segmen, jangan hanya melihat apakah tidak kosong.

Jika halaman hanya berisi gambar dan tidak ada teks

Periksa apakah gambar berisi teks dan putuskan apakah OCR diperlukan. Jangan hanya berasumsi bahwa seluruh halaman adalah hasil scan.

Jika Anda akan melakukan penerjemahan dokumen

Pemeriksaan integritas teks diselesaikan sebelum sampel yang tidak peka diserahkan ke proses penerjemahan.

Gunakan daftar periksa ini untuk terjemahan dokumen

Pertama-tama periksa urutan halaman, lokasi sumber, dan integritas teks, lalu kirimkan sampel yang tidak peka ke proses penerjemahan. Setelah diterjemahkan, Anda masih perlu memeriksa apakah judul, teks, dan ilustrasi sudah sesuai. Anda tidak bisa hanya memeriksa apakah teksnya halus.

OmniDoc (portal produk) menyediakan portal terjemahan dokumen multi-format, dan situs resminya memperkenalkan fungsi OCR, glosarium, dan perbandingan bilingual. Jika Anda ingin memulai pemrosesan langsung dari file, Anda dapat mengevaluasi jalur ini dengan sampel nyata.

Harap gunakan file yang tidak peka dan Anda mempunyai izin untuk mengunggahnya, dan gunakan item centang dalam artikel ini untuk meninjau hasilnya. Tidak ada klaim bahwa OmniDoc menggunakan pustaka sumber terbuka atau algoritme internal yang disebutkan dalam artikel ini, dan contoh tersebut juga tidak menggantikan pengujian kinerja produk.

❓ Pertanyaan yang Sering Diajukan (FAQ)

1. Jika teks dapat diekstraksi, apakah berarti lapisan teksnya sudah benar?

tidak bisa. Konten yang diekstraksi juga perlu diperiksa semantik, urutan, dan asalnya. Ketika kesalahan pemetaan terjadi, karakter yang tampaknya masuk akal mungkin akan ditampilkan.

2. Ada gambar di halaman. Apakah ini berarti salinannya dipindai?

tidak pasti. Kutipan gambar tidak membuktikan bahwa gambar menutupi seluruh halaman, juga tidak membuktikan bahwa teks dapat dikenali. Anda perlu memeriksa apakah gambar tersebut berisi teks.

3. Baik teks maupun gambar tidak dapat dideteksi. Apakah ini berarti halaman tersebut kosong?

Tidak ada kesimpulan yang dapat ditarik dari hal ini. Anda harus memeriksa konten gambar halaman sebelum membuat penilaian.

4. Apakah skrip diagnostik ini dapat digunakan pada semua PDF?

tidak bisa. Ini hanya berdasarkan karakteristik statistik, dan tinjauan manual masih diperlukan untuk font terenkripsi atau pengkodean khusus.

📝 Ringkasan

Apakah PDF dapat dilihat atau disalin, pertama-tama periksa lapisan teks dan pemetaan karakter, lalu lihat konten gambar, dan terakhir tentukan apakah itu dokumen yang dipindai. Simpan dokumen asli sebelum diproses dan tinjau satu per satu dengan item pemeriksaan.

Coba sekarang: Unggah dokumen untuk memulai penerjemahan, dengan tetap mempertahankan tata letak aslinya

Bacaan lebih lanjut

Diperbarui 2026-11-14