PDF'ye OCR bilgisi ekleme


28

Bir belgenin iyi kalitede taramasını yapıyorum; bu tür tarama pdf formatındadır.

Aranabilir hale getirmek için pdf'ye ocr bilgisini nasıl ekleyebilirim? Aranabilir olarak demek istediğim, pdf'i evince ile izlerken CTRL-F aslında pdf içeriğinde arama yapmama izin veriyor.



4
@ Jakob, bence dupe değil, farklı şeyler soruyoruz. Diğer soru bazı pdf'lerden metin çıkarmaktır (yani karşılık gelen txt dosyalarını oluşturmak), benim sorum ocr bilgisi eklemek ve pdf okuyucuda arama işlevini yapmak için pdf'yi değiştirmek. Soruyu açıklığa kavuşturacağım.
fdierre

Belgeyi taramak için nasıl ve ne kullandınız?
Mitch

@Mitch Çok güzel bir belge besleyiciye sahip olan ofisim Ricoh Aficio MP-C2500 yazıcı / fotokopi makinesi / tarayıcıyı kullandım. :-)
fdierre

Tarama ve / veya OCR Yazılımı?
Mitch

Yanıtlar:


21

pdfsandwich

İstediğinizi yapar ve Ubuntu deb paketleri sunar. OCR motoru olarak tesseract kullanır. Aşağıdaki çağrı, metin katmanını taranmış PDF'nize ekler:

pdfsandwich scanned.pdf

Aşağıdakiler aynısını yapar ancak başka bir dilde (ISO 639-2 kodu, indirme tesseract-ocr-LANGCODEpaketi) ve düzeni ayarlama:

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

Herhangi bir hata alırsanız lütfen Sourceforge'dan son sürüm deb dosyasını indirin .

Yasal Uyarı: Ben pdfsandwich geliştiricisi ve bu yüzden açıkça önyargılıyım.


6
Bu gerçekten harika, teşekkür ederim. Ancak görüntüleri değiştiriyor gibi görünüyor, üzerlerinde keskin bir maske takıyor gibi görünüyor. Görüntüleri daha önce oldukları gibi bırakmanın bir yolu var mı? Özel örneğimde, filtre bazı denklemlerde çıtayı birkaç kesirden çıkarmayı bile başardı. Geri kalan her şey oldukça iyi çalışıyor ...
naught101

Kötü kalite paketi: `/tmp/pdfsandwich_0.1.3_amd64.deb için Lintian kontrol sonuçları: E: pdfsandwich: kontrol-dosya-kötü izinleri md5sums 0664! = 0644 E: pdfsandwich: kontrol-dosya-sahibi-kötü-sahibi md5sums james / james! = root / root E: pdfsandwich: yanlış dosya sahibi-kullanıcı sahibi veya kullanıcı arayüzü usr / 1000/1000 E: pdfsandwich: yanlış dosya sahibi-kullanıcı dostu / kullanıcı / kullanıcı / us / bin / 1000 / 1000 E: pdfsandwich: yanlış dosya sahibi-uid-or-gid usr / bin / pdfsandwich ...
AB

SF'den son sürüm deb dosyasını indirin . Sonunda bir hata alırsanız ghostscript (v0.1.4) ile ilişkili olabilir. Şimdi v0.1.6 kullanıyor pdfunite.
Pablo,

1
@PabloBianchi Kullanarak OCRed metnin el ile düzeltilmesinin bir yolu var mı pdfsandwitch? Bunu bazı İsveçli belgelerle yapıyorum ve bir metin dosyası olsaydı düzeltmesi kolay olacak bazı yanlış yazımlar (muhtemelen orijinalin fontu nedeniyle) dışında iyi sonuç veriyor, ancak bunu PDF'de nasıl yapabilirim ?
zrajm

@zrajm , OCR adımında daha iyi tanınması için bazı pdfsandwich parametrelerini kullanabilirsiniz . Resmin arkasındaki gizli metni bir PDF olarak düzenlemek için LibreOffice Draw, Inkscape veya herhangi bir PDF düzenleme aracıyla metin kutularının katmanını düzenleyebilirsiniz. Daha iyi bir yol bulursanız lütfen buraya gönderin. DA JImej!
Pablo A


4

İdeal olmayan bir çözüm buldum ama çok etkili bir çözüm.

Kullandığım PDF X-Change Görüntüleyici Wine aracılığıyla. Mevcut görüntü tabanlı pdf'ye bir metin katmanı ekleyen bir OCR özelliğine sahiptir.

Böylece bu görünmez katmandan metin arayabilir ve kopyalayabilirsiniz.

görüntü tanımını buraya girin


2

Komut satırı çözümü için pdfocr kullanabilirsiniz .

Kısacası, yazılımı yükleyin:

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

Sonra pdfocr komutunu çalıştırın:

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

Bu benim için Ubuntu 12.04 LTS'de çalıştı.


6
Burada Github: github.com/gkovacs/pdfocr . Ancak bu, pdfsandwichyüksek görüntü içeren PDF'leri değiştirdiğinde / sıkıştırırken, temel olarak orijinal görüntü bilgilerinin bazılarını tahrip ettiği için de aynı soruna sahiptir .
jmiserez

2

Kolayca uygulanabilen ve aynı kalitede girdi dosyası ve uygun boyutta bir çıktı pdf sağlayan bir çözüm, OCRmyPDF'dir:

https://github.com/jbarlow83/OCRmyPDF


Senaryonuzla mükemmel sonuçlar aldım. Geza Kovacs'ın pdfocr'dan farklı olarak, fazladan (bazı Linux dağıtımlarında derlemek zor!) Kütüphaneler gerektirmez. Teşekkür ederim!
Maxim

0

Bu benim hızlı ve kirli ImageMagick en dayanan çözüm convert, tesseract, parallelve pdftk(debian tabanlı dağıtımlarında tüm mevcut). Büyük ölçüde bu blog gönderisine dayanıyor .

#!/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

Ppm dosyalarının bulunduğu tüm dizin için bu ppm2ocrpdf.sh dosyasını kullanabilirsiniz.

#!/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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.