Trích xuất hình ảnh nhúng từ PDF


165

Trước khi bắt đầu sử dụng Ubuntu, tôi đã sử dụng trình đọc Nitro PDF để tự động trích xuất hình ảnh từ các tệp PDF. Có một trình đọc PDF cho Linux thực hiện việc này không?

Tôi muốn có thể trích xuất hình ảnh nhanh hơn / dễ dàng hơn so với khi chụp ảnh nhanh.


Bạn có thể nhớ lại NitroPDF có thể làm tốt như thế nào với hình ảnh vector không? Có thể pdfimageslàm điều đó tốt hơn / tồi tệ hơn NitroPDF?
Léo Léopold Hertz


2
@ funky-tương lai Rõ ràng hai câu hỏi là trùng lặp nhưng mục tiêu trùng lặp của bạn chỉ có hai câu trả lời và một trong hai câu trả lời này là câu trả lời spam, vì vậy nên đảo ngược hướng sao chép để tránh câu hỏi này khỏi bị búa tấn công.
karel

Câu trả lời:


197

Sử dụng pdfimages

pdfimages là một công cụ trích xuất hình ảnh PDF giúp lưu hình ảnh trong tệp PDF thành định dạng tệp PPM, PBM, JPEG hoặc JPEG 2000.

Đây là một phần của poppler-utilsgói, bạn sẽ cần cài đặt.

Sử dụng: pdfimages [options] <PDF-file> <image-root>

Ví dụ: Phần sau đây trích xuất tất cả hình ảnh từ tệp PDF, lưu chúng ở định dạng JPEG.

pdfimages -j in.pdf /tmp/out

Sẽ lưu hình ảnh từ tệp PDF in.pdftrong các tệp /tmp/out-000.jpg(hoặc /tmp/out-000.pbm; xem bên dưới) /tmp/out-001.jpg, v.v.


Trang man pdfimages giải thích:

-j:  Normally, all images are written as PBM (for monochrome images) or PPM for
     non-monochrome images) files. With this option,  images in DCT format are
     saved as JPEG files. All non-DCT images are saved in PBM/PPM format as usual.

8
Sẽ rất tuyệt nếu có một giải pháp trích xuất hình ảnh ở định dạng gốc của nó. Mã hóa lại JPEG không thực sự lý tưởng.
Christian

32
@Christian từ trang người đàn ông-all Write JPEG, JPEG2000, JBIG2, and CCITT images in their native format. CMYK files are written as TIFF files. All other images are written as PNG files. This is equivalent to specifying the options -png -tiff -j -jp2 -jbig2 -ccitt.
wil93

2
Xin lưu ý rằng công -alltắc chỉ được hỗ trợ trong các phiên bản poppler-utils gần đây. Chẳng hạn, nếu bạn vẫn ở vào ngày 12.04, bạn sẽ không thể truy cập tùy chọn này
Glutimate

1
Nếu bạn không thể sử dụng, -allhãy dùng các định dạng PNM. Chúng không mất dữ liệu và bạn có thể xử lý hậu kỳ các hình ảnh, ví dụ như PNG.
Tomasz Gandor

1
@Christian, sử dụng $ pdfimages -list <PDF-file>để kiểm tra định dạng gốc trong cột "enc", vì vậy bạn không phải mã hóa lại hình ảnh sang định dạng khác.
Jose Barakat

24

Tôi thường sử dụng Inkscape cho việc này. Tải trang và xóa tất cả những thứ khác. Ưu điểm là bạn có thể lấy hình ảnh vector trong SVG và sửa đổi chúng khi bạn chọn.


Một số tệp PDF chỉ có thể được nhập chính xác bằng nhập nội bộ Inkscape (nhập poppler / cairo hoặc pdfimage không thể phân tích cú pháp đúng cách). Sau khi nhập, sao chép và dán hình ảnh vào một tập tin mới và thay đổi kích thước trang để lựa chọn graphicdesign.stackexchange.com/a/21638/95041
sdaffa23fdsf

Không có vấn đề gì với tôi, đó là giải pháp tốt nhất, lưu ý rằng bạn phải chọn một trang mỗi lần!
Jimmy Olano

5

Tôi có một tệp PDF hai cột với các hình ảnh nhúng được tạo bằng LaTeX trong đó các hình ảnh gốc được cung cấp dưới dạng EPS. Tôi đã thử giải pháp đề xuất dựa trên pdfimages, nhưng thật không may, nó không trả về bất kỳ hình ảnh nào. Sau đó tôi đã thử sử dụng Inkscape, nhưng hình ảnh SVG mà nó tạo ra bị biến dạng và tôi cũng không có may mắn xuất chúng dưới dạng EPS.

Phần mềm hoạt động cho chúng tôi là MasterPdfEditor .

Đây là thủ tục

  • Mở tệp của bạn bằng Master PDF Editor
  • Sử dụng công cụ chỉnh sửa (Alt + 1) để chọn hình ảnh bạn cần trích xuất
  • Sao chép hình (Ctrl + C)
  • Nhấp vào khung nét đứt xung quanh hình ảnh và kiểm tra thanh bên phải (Object Inspector) và nhấp vào "Geomety". Ở đó bạn có thể thấy kích thước của lựa chọn của bạn
  • Tạo một tệp mới (Ctrl + N). Nó sẽ nhắc bạn cung cấp kích thước trang. Cung cấp kích thước chính xác của hình ảnh của bạn và tạo tệp mới
  • Bây giờ có một chút khó khăn: dán hình ảnh (Ctrl + V). Hình ảnh có thể không hiển thị trong tập tin mới. Sử dụng các mũi tên để di chuyển nó cho đến khi bạn có thể theo dõi nó.
  • Sử dụng các mũi tên để căn giữa hình ảnh trong trang mới
  • Lưu dưới dạng PDF

Kết quả là chất lượng rất cao, nhưng phần mềm không miễn phí. Có một phiên bản demo "cho phép bạn thử tất cả các tính năng", nhưng đi kèm với "việc thêm hình mờ trên tệp đầu ra." Thành thật mà nói, tôi đã không nhận thấy bất kỳ hình mờ nào trong bản PDF được sản xuất.


Đây là Hỏi Ubuntu ... Chúng tôi thích nguồn mở ở đây và giải pháp của bạn là một giải pháp thương mại nguồn đóng ... Làm thế nào tốt hơn câu trả lời đã được nâng cao này? (-1 trong thời gian trung bình)
Fabby

3
@Fabby Cảm ơn bạn đã phản hồi. Tôi không biết về nó. Có một quy tắc như vậy trên Askubfox.com? Tuy nhiên, ngay khi bạn mở trung tâm phần mềm Ubuntu , bạn sẽ nhận được đề xuất cho các ứng dụng không miễn phí.
Pantelis Sopasakis

Không, không có "quy tắc" và đó là lý do tại sao tôi không bỏ phiếu để xóa câu trả lời này, nhưng có những công cụ tốt hơn miễn phí (như trong bia miễn phí bài phát biểu miễn phí) vì vậy đó chỉ là ý kiến.
Fabby

1
+1. Tôi đã sử dụng dòng lệnh ImageMagick, nhưng đây là một giải pháp thú vị cho ai đó đang tìm kiếm GUI.
rpmcruz

2
Nó hoạt động với một số người, như vậy là đủ tốt. Đừng là một nazi .... Tôi không biết "chúng ta" là ai. Bạn có thể nói chỉ cho chính mình. +1 cho câu trả lời
sdaffa23fdsf

4

Bạn cũng có thể thử pdfmod. Nó là một GUI (giao diện đồ họa) có thể trích xuất hình ảnh và thực hiện các thao tác pdf cơ bản khác.


Hmm, có vẻ hơi lỗi với tôi. Chèn một tệp PDF với hình ảnh chủ yếu là màu tím và có hình ảnh màu xanh lục.
DBX12

2

Nếu những gì bạn cần là một hình ảnh được cắt ở định dạng pdf / eps, sau đó trích xuất một trang với hình ảnh bằng cách sử dụng pdfmod(như được đề xuất bởi To Do).

Sau đó, bằng cách sử dụng, pdfcropbạn có thể cắt nó đúng cách để thiết lập lề bằng thử và lỗi:

pdfcrop --margins "-15 -50 0 -140" extracted_page.pdf

1

Tôi sử dụng pdfimages là một công cụ dòng lệnh và nó hoạt động rất tốt cho tôi. Nó rất dễ sử dụng và bạn có thể sử dụng tùy chọn --help để tìm hiểu thêm về cách sử dụng. Tôi sử dụng Ubuntu và nó được cài đặt sẵn. Nếu các tệp pdf của bạn được mã hóa hoặc bảo vệ bằng mật khẩu, có các tùy chọn cho điều đó, vì vậy công cụ này hoạt động rất tốt. Bạn có thể đọc thêm về pdfimages tại đây


4
Xin vui lòng đọc câu trả lời khác trước khi đăng của bạn. Lưu ý rằng có cái khác bao gồm điều này.
edwin

Ok, xin lỗi :) Tôi nghĩ sẽ đăng bài của tôi vì nó có một số thông tin về các tệp pdf được bảo vệ bằng mật khẩu và tôi giải thích rằng công cụ này có các tùy chọn này, cộng với tôi đã đăng một liên kết hướng dẫn về công cụ này.
jetbird13

Nếu bạn có đủ danh tiếng, bạn có thể nhận xét về câu trả lời của người khác hoặc nâng cao họ.
edwin

1

Với pdfimages, hình ảnh được trích xuất có thể có hai hoặc nhiều phần. Một cách đơn giản để đặt chúng lại với nhau mà không phải lo lắng về các định dạng được trích xuất là nhập các phần vào LibreOffice Draw, cắt xén với đoạn hội thoại hình ảnh, định vị các phần, điều chỉnh kích thước trang và xuất theo bất kỳ định dạng nào bạn thích.


1

Nếu bạn muốn cắt hình ảnh từ pdf bằng pdfviewer, bạn có thể thử okular. Nó có thể cắt bất cứ thứ gì (văn bản hoặc hình ảnh) ở định dạng png hoặc jpeg. Nếu bạn muốn trích xuất hình ảnh ở định dạng png từ pdf, bạn có thể thực hiện bằng lệnh tối thiểu với pdftohtml. Nó chuyển đổi hình ảnh pdf sang html cộng. Tại đây bạn có thể tìm thấy một ví dụ - https://www.youtube.com/watch?v=CG1rf7k3xo8 . Nếu bạn muốn trích xuất nhiều hình ảnh từ pdf, tôi khuyên bạn nên thử điều này.


0

Phần mềm được sử dụng: Xreader OS: Antergos

Các bước:

  1. Mở PDF
  2. Nhấp chuột phải vào hình ảnh
  3. Chọn Lưu hình ảnh dưới dạng ..
  4. Nhập tên tập tin và phần mở rộng.
  5. Lưu lại.
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.