Thay thế một hình ảnh trong PDF bằng dòng lệnh


11

Tôi cần xử lý một số tệp PDF. Nhiệm vụ bao gồm trao đổi một tập tin hình ảnh nhất định bởi người khác. Vấn đề đầu tiên của tôi là làm thế nào để thay thế một hình ảnh PDF từ dòng lệnh trong một quy trình hàng loạt. Tiếp theo tôi sẽ cố gắng giải quyết các vấn đề khác như làm thế nào để xác định đó là hình ảnh tôi cần thay thế (vì các tệp PDF có thể có nhiều hơn một hình ảnh). Nhưng trước tiên tôi muốn giải quyết vấn đề đầu tiên: làm thế nào để thay thế một hình ảnh trong PDF bằng một cái khác.

Tôi đã đọc về poppler-utils và pdftk nhưng theo như tôi biết, không có công cụ nào trong số này cho phép thay thế hình ảnh thành PDF.


1
Nếu bạn tìm thấy một câu trả lời nó sẽ thực sự thú vị để biết. Sau khi cô lập các "trang vấn đề", bạn có thể sử dụng ImageMagick để chèn một hình ảnh vào nhau và sau đó chuyển đổi nó trở lại pdf: imagemagick.org/Usage/layers Ngoài ra: superuser.com/questions/614784/...
Konstantinos

Cảm ơn @pidosaurus Tôi đã đưa ra các tùy chọn này nhưng nó có một vấn đề lớn: nó ngụ ý chuyển đổi PDF (hoặc trang chữ ký) thành hình ảnh. Đó là một vấn đề vì PDF kết quả sẽ có kích thước lớn hơn nhiều và người dùng không thể chọn một đoạn văn bản để sao chép và dán chẳng hạn.
Ivan

tra cứu chuyển đổi từ fantemagick, và hơn thế nữa, các công cụ mà ooconv từ openoffice (bây giờ là libreoffice, thực sự) cung cấp - Tôi đã từng thuê ai đó viết trình chuyển đổi PPT sang PDF và đây là những công cụ được sử dụng.
toán

Không có công cụ PDF nào tôi biết có thể làm điều đó, nhưng sẽ rất khó để viết một công cụ mới bằng thư viện PDF có chức năng đó. Một vấn đề bạn sẽ phải giải quyết là làm thế nào để chỉ định một hình ảnh cụ thể trong PDF.
dirkt

Câu trả lời:


1

OK ... tôi nghĩ pdflatexlà phần còn thiếu ở đây.

OP cho biết ông đã xem xét poppler-utilspdftk. Hãy để tôi thêm vào đó pdfimages. Đây, cùng với pdflatexlà những mảnh của một giải pháp.

pdfimages -f 4 -l 20 -j -png target.pdf imageroot

Trong mã ví dụ ở trên, pdfimages xem qua các trang 4 đến 20 target.pdfvà trích xuất tất cả các hình ảnh thành các tệp có tên bắt đầu imageroot.

poppler-utilscung cấp pdftotext. Tôi đề nghị -layouttùy chọn làm một công việc tuyệt vời giữ cho tài liệu có thể đọc được.

pdftotext -layout $1.pdf $1.txt

Sự phản đối của OP đối với imagemagickgiải pháp được cung cấp bởi pidosaurus là hình ảnh không có văn bản có thể trích xuất được. Với các tiện ích tôi đã phác thảo, OP sẽ có tất cả các hình ảnh cũng như tất cả các văn bản được trích xuất, số trang và nội dung được giữ lại bởi -layouttùy chọn. OP có thể xác định đúng trang văn bản và tặc nó thành một .textệp kết thúc bằng một lệnh %includegraphicsvà tham chiếu đến hình ảnh thay thế bằng tên tệp. Sau đó pdflatex, bạn kết thúc với một .pdf một trang mới để chèn vào phần còn lại của tài liệu của bạn pdftk. Nếu bạn biết vị trí trong văn bản của trang gốc, hình ảnh sẽ nằm ở đâu, bạn có thể %includegraphics [h]và lấy hình ảnh ở đúng vị trí.

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.