Menambahkan info OCR ke PDF


28

Saya memiliki pemindaian dokumen yang berkualitas baik; pemindaian tersebut dalam format pdf.

Bagaimana saya bisa menambahkan informasi ocr ke pdf, sehingga menjadi dapat dicari? Maksud saya maksudnya adalah saat melihat pdf dengan evince, CTRL-F sebenarnya memungkinkan saya untuk mencari konten pdf.



4
@ Jakob, saya pikir itu bukan penipuan, kami menanyakan hal yang berbeda. Pertanyaan lain adalah tentang mengekstraksi teks dari beberapa pdf (yaitu menghasilkan file txt yang sesuai), sementara pertanyaan saya adalah tentang memodifikasi pdf untuk menambahkan informasi OCR dan membuat fungsi pencarian berfungsi di pembaca pdf. Saya akan mengklarifikasi pertanyaannya.
fdierre

Bagaimana, dan apa yang Anda gunakan untuk memindai dokumen?
Mitch

@Mitch Saya menggunakan printer / copier / scanner Ricoh Aficio MP-C2500 kantor saya, yang memiliki pengumpan dokumen yang sangat bagus. :-)
fdierre

Memindai dan / atau Perangkat Lunak OCR?
Mitch

Jawaban:


21

pdfsandwich

Lakukan apa yang Anda inginkan dan sediakan paket deb Ubuntu. Ini menggunakan tesseract sebagai mesin OCR. Panggilan berikut menambahkan lapisan teks ke PDF yang dipindai:

pdfsandwich scanned.pdf

Mengikuti melakukan hal yang sama tetapi dengan bahasa lain (kode ISO 639-2, tesseract-ocr-LANGCODEpaket unduh ) dan mengatur tata letak:

pdfsandwich  -verbose -lang spa -layout single scanned.pdf

Jika Anda mendapatkan kesalahan, unduh deb versi terakhir dari Sourceforge .

Penafian: Saya adalah pengembang pdfsandwich dan karenanya jelas-jelas bias.


6
Ini sangat bagus, terima kasih. Namun, tampaknya untuk memodifikasi gambar, sepertinya itu menjalankan topeng unsharp di atasnya atau sesuatu. Apakah ada cara untuk meninggalkan gambar persis seperti sebelumnya? Dalam contoh khusus saya, filter bahkan berhasil menghapus bilah dari beberapa fraksi di beberapa persamaan. Segala sesuatu yang lain bekerja dengan sangat baik ...
naught101

Paket kualitas buruk: `Lintian memeriksa hasil untuk /tmp/pdfsandwich_0.1.3_amd64.deb: E: pdfsandwich: control-file-has-bad-permissions md5sums 0664! = 0644 E: pdfsandwich: control-file-has-bad-owner md5sums james / james! = root / root E: pdfsandwich: salah-file-pemilik-usid-atau-gid usr / 1000/1000 E: pdfsandwich: salah-file-pemilik-usid-atau-gid usr / bin / 1000 / 1000 E: pdfsandwich: file-salah-pemilik-uid-atau-gid usr / bin / pdfsandwich ...
AB

Unduh deb versi terakhir dari SF . Jika Anda mendapatkan kesalahan di akhir mungkin terkait dengan ghostscript (v0.1.4). Sekarang v0.1.6 menggunakan pdfunite.
Pablo A

1
@PabloBianchi Apakah ada cara untuk proofreading manual dari teks OCR menggunakan pdfsandwitch? Saya melakukan ini dengan beberapa dokumen Swedia, dan berfungsi dengan baik, kecuali untuk beberapa kesalahan ejaan (mungkin karena font aslinya) yang akan mudah diperbaiki jika itu adalah file teks, tetapi bagaimana saya bisa melakukan ini dalam PDF yang dihasilkan ?
zrajm

@ zrajm Anda dapat menggunakan beberapa parameter pdfsandwich untuk pengakuan yang lebih baik pada langkah OCR. Untuk mengedit teks tersembunyi di balik gambar PDF Anda cukup mengedit layer kotak teks dengan LibreOffice Draw, Inkscape atau alat pengeditan PDF apa pun. Jika Anda menemukan cara yang lebih baik silakan posting di sini. DaH jImej!
Pablo A


4

Saya menemukan solusi yang tidak ideal, tetapi sangat efektif.

Saya menggunakan PDF X-Change Viewer melalui Wine. Ini memiliki fitur OCR yang menambahkan lapisan teks ke pdf berbasis gambar yang ada.

Dengan demikian Anda dapat mencari dan menyalin teks dari lapisan tak kasat mata ini.

masukkan deskripsi gambar di sini


2

Untuk solusi baris perintah, Anda dapat menggunakan pdfocr .

Secara singkat, instal perangkat lunak:

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:gezakovacs/pdfocr
$ sudo apt-get update
$ sudo apt-get install pdfocr

Kemudian jalankan pdfocr:

$ pdfocr -i scanned.pdf -o scanned.with.search.pdf

Itu berhasil bagi saya di Ubuntu 12,04 LTS.


6
Github di sini: github.com/gkovacs/pdfocr . Tapi ini memiliki masalah yang sama seperti pdfsandwich, karena memodifikasi / memampatkan PDF yang berisi gambar highres, pada dasarnya menghancurkan beberapa informasi gambar asli.
jmiserez

2

Solusi yang mudah diimplementasikan dan memberikan output pdf dengan kualitas yang sama dari file input plus ukuran yang masuk akal adalah OCRmyPDF:

https://github.com/jbarlow83/OCRmyPDF


Saya mendapatkan hasil yang luar biasa dengan skrip Anda. Tidak seperti pdfocr oleh Geza Kovacs, itu tidak memerlukan pustaka tambahan (sulit dikompilasi di beberapa distro Linux!). Terima kasih!
Maxim

0

Ini adalah solusi cepat dan kotor saya berdasarkan ImageMagick ini convert, tesseract, paralleldan pdftk(semua tersedia di distro berbasis debian). Ini sebagian besar didasarkan pada posting blog ini .

#!/bin/sh -ex

density=${2:-"300"} # default to 300 DPI if 2nd parameter is not given

convert -monitor -density "$density" "$1" -monochrome -compress lzw -alpha deactivate page_%05d.tif
parallel --bar "tesseract {} {.} pdf 2>/dev/null" ::: page_*.tif
pdftk page_*.pdf cat output "${1%.*}-ocred.pdf" compress

# Cleanup temp files
rm page_?????.tif page_?????.pdf

0

Untuk seluruh direktori dengan file ppm Anda dapat menggunakan skrip ini ppm2ocrpdf.sh

#!/bin/sh

mkdir .pdf
for f in *.ppm; do
    echo " Running convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf"
    convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf
    echo " Running tesseract -l deu "$f" "$f" pdf"
    tesseract -l deu "$f" "$f" pdf
    echo " Running pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf"
    pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf
    echo " Running rm "$f"ppm.pdf"
    rm "$f"ppm.pdf
    echo " Running rm "$f".pdf"
    rm "$f".pdf
done
echo " Running pdftk *.pdf cat output ../outdocument.pdf"
pdftk ./.pdf/*.pdf cat output outOcrDocument.pdf
echo " Running rm ./.pdf/*.pdf"
rm ./.pdf/*.pdf
echo " Running rmdir .pdf"
rmdir .pdf
echo "Done"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.