Jika Anda memindai halaman dengan teks ke dalam PDF dan menjalankan aplikasi OCR di atasnya, maka teks akan ditambahkan ke halaman, tetapi "mode rendering teks" diatur ke tidak terlihat. Itu ada di sana, tetapi tidak ditampilkan di layar (atau di atas kertas jika dicetak). Apa yang Anda lihat atau cetak adalah gambar yang dipindai asli.
Bagaimana kita bisa membuat teks yang tidak terlihat terlihat?
Nah, kita bisa mengedit PDF ... Kode PDF untuk mengatur rendering teks menjadi tak terlihat adalah ini:
3 Tr
Anda tidak dapat menemukan string ini (belum) di from_abbyy.pdf asli atau di from_ghostscript.pdf karena bagian dari PDF dikompresi. Jadi kami membuka kompresi mereka sejauh mungkin dengan bantuan qpdf
:
qpdf \
--qdf \
from_abbyy.pdf \
qdf--from_abbyy.pdf
qpdf \
--qdf \
after_ghostscript.pdf \
qdf--after_ghostscript.pdf
Sekarang kita dapat menemukan string di atas dengan mudah (dan hanya ada satu kejadian di setiap file).
Mari kita beralih ini ke salah satu mode rendering teks yang terlihat. Secara keseluruhan, kita dapat memilih di antara 8 mode rendering teks ini:
0 - fill glyph shapes
1 - stroke glyph shapes
2 - fill, then stroke glyph shapes
3 - neither fill nor stroke glyph shapes (invisible)
4 - fill and add to path for clipping glyph shapes
5 - stroke glyph shapes and add to path for clipping
6 - fill, then stroke glyph shapes and add path for clipping
7 - add glyph shapes to path for clipping
Jika saya menggunakan mode "isi", teks dari OCR mungkin akan terlihat tidak begitu bagus di atas gambar pemindaian yang mendasarinya. Karena itu saya lebih suka varian "stroke". Jadi saya cukup mengubah baris di atas untuk membaca
1 Tr
Melihat PDF yang dimodifikasi ini, saya tidak suka, karena linewidth default terlalu tebal untuk selera saya. Juga, warna garis luar garis hitam (standar); Saya lebih suka merah sehingga memiliki kontras dengan bentuk yang awalnya dipindai. Oleh karena itu saya menambahkan beberapa kode ke bagian depan baris ini yang menetapkan linewidth menjadi seperempat poin:
.25 w
dan beberapa lainnya untuk mengatur warna stroke menjadi merah:
1 0 0 RG
Baris lengkap sekarang terbaca:
.25 w 1 0 0 RG 1 Tr
Itu saja.
Perhatikan, bahwa manipulasi kecil kami telah merusak file, karena "TOC" (dalam istilah teknis: xref
tabelnya) sekarang tidak lagi valid. Acrobat Reader atau Acrobat Professional akan tetap membukanya (tanpa mengeluh bahkan) dan diam-diam "memperbaiki" bagian xref dari file tersebut. Pemirsa PDF lain mungkin menolak file tersebut, tetapi untuk saat ini kami tidak peduli ...
Berikut screenshot dari hasilnya:
(Screenshot pertama diperbesar menjadi lebar jendela.)
(Screenshot kedua diperbesar menjadi 800%.)
Garis merah adalah teks pindaian yang dibuat terlihat sekarang, seperti yang kita inginkan.
Saya melakukan prosedur yang sama seperti diuraikan di atas untuk kedua file from_abbyy.pdf dan after_ghostscript.pdf . Saya membuka kedua hasil dalam 2 contoh Acrobat Reader yang berbeda. Jika kita membuat keduanya memperbesar nilai yang sama dan memaksimalkan kedua jendela, maka mudah untuk beralih tampilan antara kedua file melalui [alt]+[tab]
. Ini adalah cara yang baik untuk mengungkapkan bahkan perbedaan render terbaik antara dua file PDF.
Hasil saya adalah: bahkan tidak ada satu pixel pun yang berbeda antara input Ghostscript (v9.02) dan outputnya untuk file ini. Tetapi ada perbedaan yang cukup besar jika Anda ingin menyalin teks bukan ...