it-swarm-id.com

Bagaimana cara mengekstrak teks dengan OCR dari PDF di Linux?

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.

41
hsribei

Saya telah sukses dengan BSD yang berlisensi port Linux Cuneiform sistem OCR.

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 terdokumentasi selain dari file README singkat, saya menemukan hasil OCR cukup baik. Yang menyenangkan tentang itu adalah ia dapat menampilkan informasi posisi untuk teks OCR dalam format hOCR , sehingga memungkinkan untuk memasukkan teks kembali ke posisi yang benar di lapisan tersembunyi dari PDF file. Dengan cara ini Anda dapat membuat PDF yang "dapat dicari" dari mana Anda dapat menyalin teks.

Saya telah menggunakan hocr2pdf untuk membuat kembali PDF dari hasil PDF dan gambar OCR khusus gambar asli. 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, ia tidak mempertahankan metadata PDF.

25
Jukka Matilainen

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 pdf toolkit penggunaan.

Daftar lengkap perangkat lunak pdf di sini di wikipedia.

Edit: Karena Anda memang membutuhkan kemampuan OCR, saya pikir Anda harus mencoba taktik yang berbeda . (yaitu saya tidak dapat menemukan konverter pdf2text linux yang melakukan OCR).

  • Konversikan pdf ke gambar
  • Pindai gambar ke teks menggunakan alat OCR

Konversi pdf ke gambar

  • gs: The perintah di bawah harus mengkonversi pdf multi halaman ke file tiff individual.

    gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = huruf -sOutputFile = nama file_% 04d.tif -dNOPAUSE -dBATCH - filename

  • tilitas ImageMagik : Ada pertanyaan lain di situs SuperUser tentang menggunakan ImageMagik yang mungkin Anda gunakan untuk membantu Anda melakukan konversi.

    convert foo.pdf foo.png

Konversi gambar ke teks dengan OCR

Diambil dari Wikipedia daftar perangkat lunak OCR

13
nagul

Google docs akan sekarang 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 raksasa Google Buk .

Namun, harus dicatat bahwa hanya PDF dengan ukuran 2 MB yang akan diterima untuk diproses.

Pembaruan
1. Untuk mencobanya, unggah pdf <2MB ke google docs dari browser web.
2. Klik kanan pada dokumen yang diunggah dan klik "Buka dengan Google Documents".
... Google Documents akan mengkonversi ke teks dan output ke file baru dengan nama yang sama tetapi Google Documents ketik di folder yang sama.

11
Russ

Geza Kovacs telah membuat paket Ubuntu yang pada dasarnya adalah sebuah skrip yang menggunakan hocr2pdf seperti yang disarankan Jukka, tetapi membuat segalanya lebih cepat untuk diatur.

Dari Geza Ubuntu posting forum 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

GitHub repositori untuk kode https://github.com/gkovacs/pdfocr/

2
ryanjdillon

PDFBeads bekerja dengan baik untuk saya. Utas ini “ Konversi Gambar yang dipindai ke Satu _ PDF File ” membuat saya aktif dan berjalan. Untuk pemindaian buku b & w, Anda perlu:

  1. Buat gambar untuk setiap halaman PDF; salah satu contoh gs di atas harus berfungsi
  2. Hasilkan output hOCR untuk setiap halaman; Saya menggunakan tesseract (tetapi perhatikan bahwa Cuneiform tampaknya bekerja lebih baik).
  3. Pindahkan gambar dan file hOCR ke folder baru; nama file harus sesuai, sehingga file001.tif perlu file001.html, file002.tif file002.html, dll.
  4. Di folder baru, jalankan

    pdfbeads * > ../Output.pdf
    

Ini akan menempatkan collated, OCR'd PDF dalam direktori induk.

1
scruss

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"
1
tolima

Cara terbaik dan paling mudah di luar sana adalah menggunakan pypdfocr itu tidak mengubah pdf

pypdfocr your_document.pdf

Pada akhirnya Anda akan memiliki your_document_ocr.pdf lain seperti yang Anda inginkan dengan teks yang dapat dicari. Aplikasi tidak mengubah kualitas gambar. Menambah ukuran file sedikit dengan menambahkan teks overlay.

Pembaruan 3 November 2018:

pypdfocr tidak lagi didukung sejak 2016 dan saya melihat beberapa masalah karena tidak dibimbing. ocrmypdf ( module ) melakukan pekerjaan symiliar dan dapat digunakan seperti ini:

ocrmypdf in.pdf out.pdf

Untuk memasang:

pip install ocrmypdf

atau

apt install ocrmypdf
1

Asprise OCR Library bekerja di 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.

1
Asprise Support

Coba Apache PDFBox untuk mengekstraksi konten teks dari PDF File. Dalam hal gambar disematkan ke dalam PDF file gunakan ABBYY FineReader Engine CLI untuk Linux untuk mengekstraksi teks.

0