Thêm thông tin OCR vào PDF


28

Tôi có một bản quét chất lượng tốt của một tài liệu; quét như vậy là ở định dạng pdf.

Làm cách nào tôi có thể thêm thông tin ocr vào pdf để nó có thể tìm kiếm được? Bằng cách tìm kiếm tôi có nghĩa là mục tiêu là khi xem pdf bằng evince, CTRL-F thực sự cho phép tôi tìm kiếm trong nội dung pdf.



4
@Jakob, tôi không nghĩ đó là một bản dupe, chúng tôi đang hỏi những điều khác nhau. Câu hỏi khác là về việc trích xuất văn bản từ một số pdf (nghĩa là tạo các tệp txt tương ứng), trong khi câu hỏi của tôi là về việc sửa đổi pdf để thêm thông tin ocr và thực hiện chức năng tìm kiếm trong trình đọc pdf. Tôi sẽ làm rõ câu hỏi.
fdierre

Làm thế nào và bạn đã sử dụng những gì để quét tài liệu?
Mitch

@Mitch Tôi đã sử dụng máy in / máy photocopy / máy quét văn phòng của tôi, máy in, có bộ nạp tài liệu rất đẹp. :-)
fdierre

Phần mềm quét và / hoặc OCR?
Mitch

Câu trả lời:


21

pdfsandwich

Có những gì bạn muốn và cung cấp các gói gỡ lỗi Ubuntu. Nó sử dụng tesseract làm động cơ OCR. Cuộc gọi sau đây thêm lớp văn bản vào tệp PDF được quét của bạn:

pdfsandwich scanned.pdf

Sau đây cũng làm như vậy nhưng với ngôn ngữ khác (mã ISO 639-2, tesseract-ocr-LANGCODEgói tải xuống ) và thiết lập bố cục:

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

Nếu bạn gặp bất kỳ lỗi nào, vui lòng tải xuống phiên bản mới nhất từ ​​Sourceforge .

Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển của pdfsandwich và do đó rõ ràng là thiên vị.


6
Điều này thực sự tuyệt vời, cảm ơn bạn. Tuy nhiên, nó xuất hiện để sửa đổi các hình ảnh, có vẻ như nó chạy một mặt nạ unsharp trên chúng hoặc một cái gì đó. Có cách nào để lại những hình ảnh chính xác như trước đây không? Trong trường hợp cụ thể của tôi, bộ lọc thậm chí còn quản lý để loại bỏ thanh khỏi một vài phân số trong một số phương trình. Mọi thứ khác hoạt động khá tốt mặc dù ...
naught 101

Gói chất lượng kém: `Kết quả kiểm tra Lintian cho /tmp/pdfsandwich_0.1.3_amd64.deb: E: pdfsandwich: control-file-has-bad-allow md5sums 0664! = 0644 E: pdfsandwich: control-file-has-bad md5sums james / james! = root / root E: pdfsandwich: false-file-own-uid-or-gid usr / 1000/1000 E: pdfsandwich: false-file-own-uid-or-gid usr / bin / 1000 / 1000 E: pdfsandwich: sai tập tin-chủ sở hữu-uid-hoặc-gid usr / bin / pdfsandwich ...
AB

Tải xuống phiên bản mới nhất từ ​​SF . Nếu bạn gặp lỗi ở cuối có thể liên quan đến ghostscript (v0.1.4). Bây giờ v0.1.6 sử dụng pdfunite.
Pablo A

1
@PabloBianchi Có cách nào để đọc lại văn bản OCRed bằng tay pdfsandwitchkhông? Tôi đang làm điều này với một số tài liệu tiếng Thụy Điển và nó hoạt động tốt, ngoại trừ một số lỗi chính tả (có thể là do phông chữ gốc) có thể dễ dàng sửa nếu đó là một tệp văn bản, nhưng làm thế nào tôi có thể làm điều này trong bản PDF kết quả ?
zrajm

@zrajm bạn có thể sử dụng một số tham số pdfsandwich để nhận biết tốt hơn trên bước OCR. Để chỉnh sửa văn bản ẩn đằng sau hình ảnh PDF, bạn chỉ cần chỉnh sửa lớp hộp văn bản bằng LibreOffice Draw, Inkscape hoặc bất kỳ công cụ chỉnh sửa PDF nào. Nếu bạn tìm thấy một cách tốt hơn xin vui lòng gửi nó ở đây. DaH jImej!
Pablo A


4

Tôi tìm thấy một giải pháp không lý tưởng, nhưng là một giải pháp rất hiệu quả.

Tôi sử dụng PDF X-Change Viewer thông qua Wine. Nó có một tính năng OCR để thêm một lớp văn bản vào pdf dựa trên hình ảnh hiện có.

Do đó bạn có thể tìm kiếm và sao chép văn bản từ lớp vô hình này.

nhập mô tả hình ảnh ở đây


2

Đối với một giải pháp dòng lệnh, bạn có thể sử dụng pdf .

Tóm lại, cài đặt phần mềm:

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

Sau đó chạy pdfoc:

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

Điều đó làm việc cho tôi trên Ubuntu 12.04 LTS.


6
Github ở đây: github.com/gkovacs/pdfoc . Nhưng điều này có cùng một vấn đề như pdfsandwich, vì nó sửa đổi / nén các tệp PDF có chứa hình ảnh highres, về cơ bản phá hủy một số thông tin hình ảnh gốc.
jmiserez

2

Một giải pháp có thể dễ dàng thực hiện và cung cấp pdf đầu ra với cùng chất lượng của tệp đầu vào cộng với kích thước hợp lý là OCRmyPDF:

https://github.com/jbarlow83/OCRmyPDF


Tôi đã có kết quả tuyệt vời với kịch bản của bạn. Không giống như pdfoc của Geza Kovacs, nó không yêu cầu bất kỳ thư viện bổ sung nào (khó biên dịch trong một số bản phân phối Linux!). Cảm ơn bạn!
Maxim

0

Đây là giải pháp nhanh chóng và dơ bẩn của tôi dựa trên ImageMagick của convert, tesseract, parallelpdftk(tất cả có sẵn trên các bản phân phối debian-based). Phần lớn dựa trên bài đăng trên blog này .

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

Đối với toàn bộ thư mục với các tệp ppm, bạn có thể sử dụng tập lệnh này ppm2ocpdf.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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.