2011-01-03 28 views
10

Tôi có một tệp PDF bao gồm văn bản và hình ảnh. Tôi muốn trích xuất hình ảnh từ PDF bằng cách sử dụng dòng lệnh linux. Tôi có thể sử dụng pdfimages để trích xuất hình ảnh, nhưng tôi cũng muốn tìm vị trí trên mỗi trang có hình ảnh đó. pdfimages có thể cho tôi biết trang của mỗi hình ảnh (từ tên tệp), tuy nhiên đó là tất cả những gì nó mang lại cho tôi. Có công cụ FLOSS nào khác có thể làm điều này không?Cho một tệp PDF, cách trích xuất hình ảnh * và vị trí của chúng trên trang * từ dòng lệnh?

+0

Không có địa điểm phần: http://askubuntu.com/questions/150100/extracting-embedded-images-from-a-pdf –

Trả lời

4

Không có đảm bảo bằng PDF rằng nếu một hình ảnh được sử dụng lại thì đó sẽ không phải là một hình ảnh riêng biệt. Có rất ít siêu dữ liệu hình ảnh trong tệp PDF ngoài vị trí trang và kích thước thực tế trên trang. Tôi đã viết một bài báo giải thích cách hình ảnh được lưu trữ bên trong một tệp PDF tại http://www.jpedal.org/PDFblog/2010/09/understanding-the-pdf-file-format-images/

+0

Vậy là có một cách dễ dàng để sử dụng lệnh/thư viện để giải nén mà vị trí trang? – Rory

14

Tôi nghĩ rằng tệp PDF phải chứa thông tin để đặt chúng, vì vậy điều này có thể thực hiện được. Mặt khác một giải pháp có thể ví dụ:

  1. Chuyển đổi mỗi trang pdf để một hình ảnh với pdftoppm
  2. Trích xuất hình ảnh từ mỗi trang với pdfimages
  3. Chuyển đổi hình ảnh vào một đơn 8-bit grey- kênh quy mô (để phân tích nhanh hơn) với phát hiện cvCvtColor
  4. Object với matchTemplate

Bước 1 có thể trông giống như Bước này 2:

for i in {0..99} ; do pdfimages -f $((i)) -l $((i+1)) file.pdf page$((i)); done 

Bước 3 đây * một ví dụ đơn giản

Trong Bước 4 bạn sẽ không gặp vấn đề với đào tạo, bởi vì hình ảnh sẽ là một kết hợp chính xác. matchTemplate(imageToSearch, pdfPageImg, outputMap, 'CV_TM_SQDIFF')

(* - Liên kết loại bỏ như bây giờ dường như chỉ tay về phía một trang web ransomware)

4

Có một -xml switch cho pdftohtml lệnh mà sẽ cung cấp vị trí hình ảnh, kích thước và các thông tin nguồn.

pdftohtml -xml file.pdf 
Các vấn đề liên quan