Làm cách nào để trích xuất văn bản từ tệp PDF không được tạo bằng chỉ mục? Đó là tất cả văn bản, nhưng tôi không thể tìm kiếm hoặc chọn bất cứ điều gì. Tôi đang chạy Kubfox và Okular không có tính năng này.
Làm cách nào để trích xuất văn bản từ tệp PDF không được tạo bằng chỉ mục? Đó là tất cả văn bản, nhưng tôi không thể tìm kiếm hoặc chọn bất cứ điều gì. Tôi đang chạy Kubfox và Okular không có tính năng này.
Câu trả lời:
Tôi đã thành công với hệ thống Cuneiform OCR được cấp phép BSD của Linux .
Không có gói nhị phân dường như có sẵn, vì vậy bạn cần xây dựng nó từ nguồn. Hãy chắc chắn đã cài đặt các thư viện ImageMagick C ++ để hỗ trợ cho bất kỳ định dạng hình ảnh đầu vào nào (nếu không nó sẽ chỉ chấp nhận BMP).
Mặc dù về cơ bản, nó dường như không có giấy tờ ngoài một tệp README ngắn gọn, tôi đã thấy kết quả OCR khá tốt. Điều thú vị ở đây là nó có thể xuất thông tin vị trí cho văn bản OCR ở định dạng hOCR , để có thể đưa văn bản trở lại đúng vị trí trong một lớp ẩn của tệp PDF. Bằng cách này, bạn có thể tạo các tệp PDF "có thể tìm kiếm" từ đó bạn có thể sao chép văn bản.
Tôi đã sử dụng hoc2pdf để tạo lại các tệp PDF ra khỏi các kết quả PDF và hình ảnh OCR ban đầu. Đáng buồn thay, chương trình không xuất hiện để hỗ trợ tạo các tệp PDF nhiều trang, vì vậy bạn có thể phải tạo một tập lệnh để xử lý chúng:
#!/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"
Xin lưu ý rằng các kịch bản trên là rất thô sơ. Ví dụ, nó không giữ lại bất kỳ siêu dữ liệu PDF nào.
aspell check --mode=html "$base.html"
trong kịch bản ngay sau khi chạy chữ hình nêm.
Xem nếu pdftotext sẽ làm việc cho bạn. Nếu nó không có trên máy của bạn, bạn sẽ phải cài đặt gói poppler-utils
sudo apt-get install poppler-utils
Bạn cũng có thể tìm thấy bộ công cụ pdf sử dụng.
Một danh sách đầy đủ các phần mềm pdf ở đây trên wikipedia.
Chỉnh sửa: Vì bạn cần các khả năng OCR, tôi nghĩ bạn sẽ phải thử một chiến thuật khác. (tức là tôi không thể tìm thấy trình chuyển đổi linux pdf2text có OCR).
Chuyển đổi pdf thành hình ảnh
gs: Lệnh dưới đây sẽ chuyển đổi nhiều trang pdf thành các tệp tiff riêng lẻ.
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = letter -sOutputFile = filename_% 04d.tif -dNOPAUSE -dBATCH - tên tệp
Tiện ích ImageMagik : Có các câu hỏi khác trên trang web SuperUser về việc sử dụng ImageMagik mà bạn có thể sử dụng để giúp bạn thực hiện chuyển đổi.
chuyển đổi foo.pdf foo.png
Chuyển đổi hình ảnh thành văn bản với OCR
Lấy từ danh sách phần mềm OCR của Wikipedia
Tài liệu Google hiện sẽ sử dụng OCR để chuyển đổi tài liệu hình ảnh / pdf đã tải lên của bạn thành văn bản. Tôi đã có thành công tốt với nó.
Họ đang sử dụng hệ thống OCR được sử dụng cho dự án Google Sách khổng lồ .
Tuy nhiên, cần lưu ý rằng chỉ các tệp PDF có kích thước 2 MB mới được chấp nhận để xử lý.
Cập nhật
1. Để dùng thử, hãy tải lên <2MB pdf lên tài liệu google từ trình duyệt web.
2. Nhấp chuột phải vào tài liệu đã tải lên và nhấp vào "Mở bằng Google Docs".
... Google Docs sẽ chuyển đổi thành văn bản và xuất thành một tệp mới có cùng tên nhưng Google Docs gõ vào cùng một thư mục.
Geza Kovacs đã tạo ra một gói Ubuntu về cơ bản là một tập lệnh sử dụng hocr2pdf
như Jukka đề xuất, nhưng làm cho mọi thứ nhanh hơn một chút để thiết lập.
Từ bài đăng trên diễn đàn Ubuntu của Geza với chi tiết về gói ...
Thêm kho lưu trữ và cài đặt trong Ubuntu
sudo add-apt-repository ppa:gezakovacs/pdfocr
sudo apt-get update
sudo apt-get install pdfocr
Chạy ocr trên một tập tin
pdfocr -i input.pdf -o output.pdf
Kho lưu trữ GitHub cho mã https://github.com/gkovacs/pdfoc/
Cách tốt nhất và dễ nhất là sử dụng pypdfocr
nó không thay đổi pdf
pypdfocr your_document.pdf
Cuối cùng, bạn sẽ có một your_document_ocr.pdf
cách khác mà bạn muốn với văn bản có thể tìm kiếm. Ứng dụng không thay đổi chất lượng của hình ảnh. Tăng kích thước của tệp một chút bằng cách thêm văn bản lớp phủ.
pypdfocr
không còn được hỗ trợ kể từ năm 2016 và tôi nhận thấy một số vấn đề do không được lưu ý. ocrmypdf
( mô-đun ) thực hiện một công việc quen thuộc và có thể được sử dụng như thế này:
ocrmypdf in.pdf out.pdf
Để cài đặt:
pip install ocrmypdf
hoặc là
apt install ocrmypdf
PDFBead hoạt động tốt cho tôi. Chủ đề này Chuyển đổi hình ảnh được quét thành một tệp PDF duy nhất giúp tôi khởi động và chạy. Để quét sách b & w, bạn cần:
Trong thư mục mới, hãy chạy
pdfbeads * > ../Output.pdf
Điều này sẽ đặt PDF đối chiếu, OCR'd trong thư mục mẹ.
một tập lệnh khác sử dụng 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"
Thư viện OCR Asprise hoạt động trên hầu hết các phiên bản Linux. Nó có thể lấy đầu vào và đầu ra PDF dưới dạng tìm kiếm PDF.
Đó là một gói thương mại. Tải xuống một bản miễn phí SDK Asident OCR cho Linux tại đây và chạy theo cách này:
aocr.sh input.pdf pdf
Lưu ý: 'pdf' độc lập chỉ định định dạng đầu ra.
Tuyên bố miễn trừ trách nhiệm: Tôi là nhân viên của công ty sản xuất sản phẩm trên.
Hãy thử Apache PDFBox để trích xuất nội dung văn bản từ Tệp PDF. Trong trường hợp hình ảnh được nhúng vào tệp PDF, hãy sử dụng ABBYY FineReader Engine CLI cho Linux để trích xuất văn bản.