2009-09-28 9 views
19

Tôi có một loạt tệp PDF đến từ các tài liệu được quét. Các tập tin chứa một kết hợp của hình ảnh và văn bản. Một số được quét dưới dạng hình ảnh không có OCR, vì vậy mỗi trang PDF là một hình ảnh lớn, ngay cả khi toàn bộ trang là văn bản hoàn toàn. Những người khác được quét bằng OCR và chứa hình ảnh và văn bản có thể tìm kiếm được khi có văn bản. Trong nhiều trường hợp, ngay cả những từ trong hình ảnh cũng có thể tìm kiếm được.Làm thế nào để biết nếu một tệp PDF chỉ chứa hình ảnh hoặc đã được quét OCR để tìm kiếm?

Tôi muốn thực hiện quy trình tự động nhận dạng văn bản trong tất cả tài liệu được quét bằng OCR, với Acrobat 8 ​​Pro, nhưng tôi không muốn OCR các tệp đã trải qua quá trình OCR quá khứ. Có ai biết nếu có cách nào để biết cái nào chỉ chứa hình ảnh, và cái nào đã chứa văn bản tìm kiếm?

Tôi đang lên kế hoạch thực hiện việc này trong C# hoặc VB.NET nhưng tôi không nghĩ rằng có thể nói hai loại tệp này là phụ thuộc vào ngôn ngữ.

Trả lời

17

Hình ảnh đã được chuyển đổi thành PDF đã được OCR'ed trong hậu quả để làm cho văn bản có thể tìm kiếm được thường chứa các phần văn bản được hiển thị là "ẩn". Vì vậy, những gì bạn nhìn thấy trên màn hình (hoặc trên giấy khi in) vẫn là hình ảnh gốc. Nhưng khi bạn tìm kiếm thành công, bạn sẽ nhận được các lần truy cập được tô sáng trên văn bản ẩn.

Tôi khuyên bạn nên xem xét các công cụ dòng lệnh có nguồn gốc từ XPDF pdffonts(.exe), pdfinfo(.exe)pdftotext(.exe). Xem đây để tải: http://www.foolabs.com/xpdf/download.html

sử dụng Ví dụ về pdffonts:

C:\downloads\> pdffonts cisco-ip-phone-7911-guide6.1.pdf 
name         type    emb sub uni object ID 
------------------------------------ ----------------- --- --- --- --------- 
LGOKFL+Univers-BlackOblique   Type 1C   yes yes no 13171 0 
LGOKGM+Univers-Black     Type 1C   yes yes no 13172 0 
[....] 

PDF này sử dụng phông chữ (chỉ định bởi các 'tên' cột), có họ nhúng (được chỉ ra bởi 'có' trong cột 'emb') và sử dụng phông chữ tập hợp con (được biểu thị bằng 'có' trong cột 'phụ').

C:\downloads\> pdffonts examle1.pdf 
name         type    emb sub uni object ID 
------------------------------------ ----------------- --- --- --- --------- 
Univers-BlackOblique     Type 1C   yes no no 14 0 
Arial        TrueType   no no no 15 0 

PDF này sử dụng 2 phông chữ (được biểu thị bằng cột 'tên'). Phông chữ 'Universe-BlackOblique' được nhúng hoàn toàn (được biểu thị bằng chữ 'yes' trong cột 'emb' và 'no' trong cột 'sub'). Phông chữ 'Arial' cũng được sử dụng, nhưng không được nhúng.

C:\downloads\> pdffonts examle2.pdf 
name         type    emb sub uni object ID 
------------------------------------ ----------------- --- --- --- --------- 

PDF này không sử dụng một phông chữ duy nhất, và do đó không có bất kỳ văn bản nhúng (vì vậy không OCR hoặc là).

Ví dụ sử dụng pdftotext:

C:\downloads\> pdftotext^
        -layout^
        cisco-ip-phone-7911-guide6.1.pdf^
        cisco-ip-phone-7911-guide6.1.txt 

này sẽ trích xuất tất cả các chuỗi văn bản từ PDF (cố gắng để bảo tồn một số giống của cách bố trí ban đầu). Nếu không có văn bản trong PDF, bạn muốn biết không có OCR ...

+0

Tôi đã thử cách tiếp cận của bạn nhưng đối với một số lệnh pdffile đã được quét "pdffonts" vẫn trả về phông chữ Helvetica? Bạn có thể giải thích hoặc hướng dẫn tôi làm thế nào tôi có thể đạt được điều này một cách chính xác hơn.Cảm ơn –

+0

@DanglingPiyush: Không có mẫu của tệp Scan-PDF mà tôi không thể cho bạn biết là Helvetica xuất phát từ đó. Bạn có thể cung cấp một trang mẫu cho thấy hành vi này không? –

+0

http://www.fileconvoy.com/dfl.php?id=gcc3a2153e00e0a7699953105370fc438c2a90509b Đây là liên kết đến mẫu pdf nó chỉ chứa hình ảnh được quét nhưng pdffonts hiển thị Phông chữ Helvectica.Xin vui lòng xem qua. –

3

Các công cụ PDF khác nhau có thể cho bạn biết liệu có văn bản hay không. Một số có sẵn như là điều khiển COM, và thậm chí có thể nguyên bản.

+0

Bạn có thể giới thiệu một thiết bị mà bạn biết hay không, hoặc tôi nên thử? – Bratch

+3

http://www.leadtools.com/ –

0

pdf của Apago trích xuất thông tin từ PDF sang tệp XML. Nó bao gồm thông tin về tài liệu bao gồm hình ảnh và văn bản. Đối với dự án của bạn, thông tin hữu ích bao gồm số lượng ảnh & và nơi có văn bản OCR (ẩn).

http://www.apagoinc.com/pdfspy

1

Mở tài liệu bằng acrobat. Chuyển đến Tệp -> Thuộc tính. Tìm trong phần "Nâng cao" và tìm Nhà sản xuất PDF. Nếu nó đọc một cái gì đó như "Giấy Capture ..." thì nó đã được OCR'd.

Hy vọng điều này sẽ hữu ích.

+0

Đúng vậy, trong các bộ mẫu của tôi, các tệp PDF dựa trên hình ảnh có một Nhà sản xuất PDF trống, nhưng những tệp đã được OCR hiển thị, "Trình cắm chụp giấy Adobe Acrobat 8.16". Nhưng tôi tìm thấy một số khác có văn bản có thể lựa chọn và nhà sản xuất là, "Acrobat Distiller 5.0.5 (Windows)." Và một văn bản khác có văn bản, "http://createpdf.adobe.com v5.1". Những người khác có văn bản "Microsoft Office Word 2007" và "GPL Ghostscript 8.54." Có vẻ như nhà sản xuất trống đối với các tệp PDF dựa trên hình ảnh nhưng một số giá trị khác cho các tệp PDF chứa văn bản. – Bratch

0

Xin lỗi để khai thác chủ đề cũ, nhưng nếu bạn thấy điều này có một cái nhìn tại thread của tôi:

Batch OCR Program for PDFs

bạn có thể nhận thêm thông tin về pdf bằng cách catting nó trong unix/linux/osx hoặc mở nó dưới dạng "rb" trong python. (Tất nhiên đó là python và bạn không muốn sử dụng nó nhưng có lẽ nó có cái gì đó tương đương).

-1

Giải pháp công nghệ rất thấp: bất kỳ tệp nào có văn bản được quét chắc chắn sẽ chứa chữ "a" để tìm kiếm trên tất cả nội dung tệp không chứa chữ cái a. tức là "KHÔNG". Bất kỳ tệp nào xuất hiện sẽ không được OCR'd

-1

Sử dụng "dtsearch" để tạo chỉ mục cho tất cả các tệp pdf ... sau đó "xem tệp nhật ký" của quá trình lập chỉ mục để kiểm tra danh sách pdf các tệp không được lập chỉ mục.