Bagaimana cara mengekstrak teks dari PDF yang tidak dibuat dengan indeks? Ini semua teks, tetapi saya tidak dapat mencari atau memilih apa pun. Saya menjalankan Kubuntu, dan Okular tidak memiliki fitur ini.
Bagaimana cara mengekstrak teks dari PDF yang tidak dibuat dengan indeks? Ini semua teks, tetapi saya tidak dapat mencari atau memilih apa pun. Saya menjalankan Kubuntu, dan Okular tidak memiliki fitur ini.
Jawaban:
Saya telah sukses dengan port Linux BSD berlisensi sistem Oune Cuneiform .
Tampaknya tidak ada paket biner, jadi Anda perlu membuatnya dari sumber. Pastikan untuk menginstal pustaka ImageMagick C ++ untuk memiliki dukungan untuk dasarnya semua format gambar input (jika tidak hanya akan menerima BMP).
Walaupun tampaknya pada dasarnya tidak berdokumen selain dari file README singkat, saya telah menemukan hasil OCR yang cukup baik. Yang menyenangkan tentang itu adalah ia dapat menampilkan informasi posisi untuk teks OCR dalam format hOCR , sehingga memungkinkan untuk menempatkan teks kembali ke posisi yang benar di lapisan tersembunyi dari file PDF. Dengan cara ini Anda dapat membuat PDF yang "dapat dicari" dari mana Anda dapat menyalin teks.
Saya telah menggunakan hocr2pdf untuk membuat ulang PDF dari hasil PDF dan gambar OCR khusus gambar saja. Sayangnya, program ini tampaknya tidak mendukung pembuatan PDF multi-halaman, jadi Anda mungkin harus membuat skrip untuk menanganinya:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a new pdf with the
# extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs.
# Usage: ./dwim.sh input.pdf output.pdf
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
cuneiform -f hocr -o "$base.html" "$page"
hocr2pdf -i "$page" -o "$base.pdf" < "$base.html"
done
# combine the pages into one PDF
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf
rm -rf -- "$tmpdir"
Harap perhatikan bahwa skrip di atas sangat sederhana. Misalnya, itu tidak mempertahankan metadata PDF apa pun.
aspell check --mode=html "$base.html"
dalam skrip tepat setelah menjalankan runcing.
Lihat apakah pdftotext akan bekerja untuk Anda. Jika tidak ada di mesin Anda, Anda harus menginstal paket poppler-utils
sudo apt-get install poppler-utils
Anda mungkin juga menemukan toolkit pdf penggunaan.
Daftar lengkap perangkat lunak pdf di sini di wikipedia.
Sunting: Karena Anda memang membutuhkan kemampuan OCR, saya pikir Anda harus mencoba cara lain. (Yaitu saya tidak dapat menemukan konverter pdf2text linux yang melakukan OCR).
Konversi pdf ke gambar
gs: Perintah di bawah ini harus mengonversi pdf multi halaman ke file tiff individual.
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = huruf -sOutputFile = nama file_% 04d.tif -dNOPAUSE -dBATCH - filename
Utilitas ImageMagik : Ada pertanyaan lain di situs SuperUser tentang menggunakan ImageMagik yang mungkin Anda gunakan untuk membantu Anda melakukan konversi.
konversikan foo.pdf foo.png
Konversi gambar ke teks dengan OCR
Diambil dari daftar perangkat lunak OCR Wikipedia
Google docs sekarang akan menggunakan OCR untuk mengonversi dokumen gambar / pdf yang Anda unggah menjadi teks. Saya telah sukses dengan itu.
Mereka menggunakan sistem OCR yang digunakan untuk proyek Google Buku raksasa .
Namun, harus dicatat bahwa hanya PDF dengan ukuran 2 MB yang akan diterima untuk diproses.
Pembaruan
1. Untuk mencobanya, unggah <2MB pdf ke google docs dari browser web.
2. Klik kanan pada dokumen yang diunggah dan klik "Buka dengan Google Documents".
... Google Documents akan mengonversi menjadi teks dan menghasilkan ke file baru dengan nama yang sama tetapi Google Documents ketik dalam folder yang sama.
Geza Kovacs telah membuat paket Ubuntu yang pada dasarnya menggunakan script hocr2pdf
seperti yang disarankan Jukka, tetapi membuat segalanya lebih cepat untuk diatur.
Dari posting forum Ubuntu Geza dengan detail pada paket ...
Menambahkan repositori dan menginstal di Ubuntu
sudo add-apt-repository ppa:gezakovacs/pdfocr
sudo apt-get update
sudo apt-get install pdfocr
Menjalankan ocr pada file
pdfocr -i input.pdf -o output.pdf
Repositori GitHub untuk kode https://github.com/gkovacs/pdfocr/
Cara terbaik dan termudah di luar sana adalah menggunakannya pypdfocr
tidak mengubah pdf
pypdfocr your_document.pdf
Pada akhirnya Anda akan memiliki your_document_ocr.pdf
cara lain yang Anda inginkan dengan teks yang dapat dicari. Aplikasi tidak mengubah kualitas gambar. Menambah ukuran file sedikit dengan menambahkan teks overlay.
pypdfocr
tidak lagi didukung sejak 2016 dan saya melihat beberapa masalah karena tidak dibimbing. ocrmypdf
( modul ) melakukan pekerjaan similiar dan dapat digunakan seperti ini:
ocrmypdf in.pdf out.pdf
Untuk memasang:
pip install ocrmypdf
atau
apt install ocrmypdf
PDFBeads berfungsi baik untuk saya. Utas ini " Mengonversi Gambar yang dipindai ke Satu File PDF " membuat saya aktif dan berjalan. Untuk pemindaian buku b & w, Anda perlu:
Di folder baru, jalankan
pdfbeads * > ../Output.pdf
Ini akan menempatkan PDF OCR yang telah disusun dalam direktori induk.
skrip lain menggunakan tesseract:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a txt with the
# extracted text in hidden layer. Requires tesseract, gs.
# Usage: ./pdf2ocr.sh input.pdf output.txt
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiff24nc -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
tesseract "$base.tiff" $base
done
# combine the pages into one txt
cat "$tmpdir"/page-*.txt > $output
rm -rf -- "$tmpdir"
Pustaka OCR Asprise bekerja pada sebagian besar versi Linux. Ini dapat mengambil input dan output PDF sebagai pencarian PDF.
Ini paket komersial. Unduh salinan gratis Asprise OCR SDK untuk Linux di sini dan jalankan dengan cara ini:
aocr.sh input.pdf pdf
Catatan: 'pdf' mandiri menentukan format output.
Penafian: Saya adalah karyawan perusahaan yang memproduksi produk di atas.
Coba Apache PDFBox untuk mengekstraksi konten teks dari File PDF. Dalam hal gambar yang disematkan ke file PDF gunakan ABBYY FineReader Engine CLI untuk Linux untuk mengekstraksi teks.