2011-11-23 35 views
5

Tôi đã đọc nhiều về trích xuất và thư viện PDF (dưới dạng iText) nhưng tôi chưa tìm thấy giải pháp trích xuất hình ảnh và văn bản (có tọa độ) từ PDF.Trích xuất hình ảnh và từ có tọa độ và kích thước từ PDF

Nhiệm vụ là quét PDF với danh mục sản phẩm và trích xuất từng hình ảnh. Có một mã hình ảnh được in bên cạnh mỗi hình ảnh và cũng có một danh sách mã sản phẩm cho các sản phẩm được hiển thị trên hình ảnh.

Tôi biết rằng không có cách nào để trích xuất thông tin có cấu trúc từ PDF như thế này nhưng với tọa độ của tất cả các đối tượng hình ảnh và văn bản tôi có thể viết mã để xác định văn bản được liên kết. Sau đó, tôi có thể chia văn bản sử dụng một RegExp và tìm ra một mã sản phẩm là gì, một mã ảnh, vv

bạn có thể đề nghị một giải pháp tốt và làm việc cho công việc là gì?

+1

Bạn đang nhắm mục tiêu một nền tảng/ngôn ngữ nhất định? Khi bạn nói "quét" để bạn có nghĩa là "nhìn qua" hoặc là bạn thực sự quét một đối tượng vật lý và sẽ có nhu cầu cần OCR khả năng? –

+0

Cảm ơn bạn đã trả lời! tôi lập trình .NET. Bất kỳ thư viện nào có cổng .net đều tốt. nhưng tôi cũng biết JAVA như vậy trong extremis tôi có thể sử dụng một thư viện java. dù sao tôi không cần OCR. PDF của tôi chứa văn bản và hình ảnh. Văn bản được hiển thị trong luồng nội dung của tệp PDF vì vậy tôi sẽ có một số loại trình phân tích cú pháp/hiển thị chỉ cho tôi biết một Chuỗi nên được hiển thị trên một trang. tôi chỉ cần coords. – Alex

Trả lời

0

Một số thư viện Java có thể thực hiện việc này. Bạn đã xem JPedal hay PdfBox chưa?

+0

tôi vừa thử iTextSharp với RenderListener. nó có vẻ hoạt động nhưng không tốt lắm. iTextSharp cho PDF của tôi trở lại hình ảnh với coords chính xác, nhưng tất cả các lớp văn bản có coords sai. tôi nghĩ rằng als PDF của tôi có 2 lớp văn bản và iTextSharp không cho tôi coords. tôi đã cố gắng vẽ trên một hộp hình ảnh những gì iTextSharp trở lại và tôi có thể thấy một cách nhanh chóng rằng có 3 lớp (1 cho hình ảnh và 2 cho văn bản) và lớp này không phải là liên kết ở tất cả. – Alex

+0

Bạn có thể chia sẻ mã mà bạn đã sử dụng để trích xuất coords hình ảnh không? renderImage được thông qua ImageRenderInfo. Làm thế nào để trích xuất tọa độ từ đó? – letronje

0

Nếu thư viện thương mại là tùy chọn cho bạn, bạn có thể thử Amyuni PDF Creator .Net hoặc Amyuni PDF Creator ActiveX. Bạn có thể sử dụng phương thức IacDocument.GetObjectsInRectangle để truy xuất tất cả "đối tượng đồ họa" mà bạn quan tâm, sau đó sử dụng thuộc tính ObjectType để tách hình ảnh khỏi văn bản. Thư viện đã cung cấp một thuật toán để đặt văn bản gần nhau lại với nhau. Từ tài liệu:

IacDocument.GetObjectsInRectangle Method 

The GetObjectsInRectangle method gets all the objects that are in the specified rectangle. 

Tuyên bố từ chối trách nhiệm thông thường được áp dụng.

3

Sử dụng xpdf (http://www.foolabs.com/xpdf/)

Nó có thể trích xuất tất cả các nhân vật trong PDF với tọa độ (pdftotext -bbox [sourcefile] [outputfile]) và cũng có tất cả các hình ảnh và SVGs trong PDF.

Đó là mã nguồn mở (GPLv2) và cũng hỗ trợ nhiều chức năng trích xuất bổ sung.

+0

Tôi đã sử dụng pdftotext trong nhiều năm và không bao giờ bị cắt xén nó có tính năng này! Không bao giờ có thể làm việc ra làm thế nào để dễ dàng trích xuất tọa độ trước đây. – fred2

+1

Điều này có đúng không? Tùy chọn bbox dường như không hoạt động đối với tôi và tôi không thể tìm thấy bất kỳ điều gì về nó trong tài liệu. – jss

Các vấn đề liên quan