Cách hợp nhất pdf: s bằng Imagemagick (vấn đề giải quyết)


43

Khi tôi cố gắng hợp nhất hai tệp .pdf bằng Imagemagick

convert pdf1.pdf pdf2.pdf temp.pdf

tệp temp.pdf kết quả dường như có độ phân giải rất thấp. Làm cách nào để giữ độ phân giải giống như trong tệp nguồn?

Câu trả lời:


53

Barns đúng, nhưng nếu pdftk không hoạt động hãy thử ghostscript.

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf pdf1.pdf pdf2.pdf

Hoạt động hoàn hảo và cũng nhanh chóng - nhanh hơn nhiều so với sử dụng ImageMagick với cờ-mật độ.
Brionius

Đây phải là câu trả lời chính xác. Không phải ImageMagick không hoạt động; nó hoạt động quá Nhưng như @Brionius lưu ý, gs nhanh hơn nhiều và chất lượng của pdf kết quả là đỉnh cao.
Jagtesh Chadha

Lưu ý rằng bạn có thể sử dụng * .pdf thay vì danh sách pdf1.pdf và pdf2.pdf ở cuối lệnh này để chuyển đổi tất cả pdf trong một thư mục thành một pdf.
Colin D

Tôi đã có một số vấn đề với phông chữ, một số trang bị mất phông chữ của họ. Có cách nào tôi có thể chọn nó?
Zloy Smiertniy

20

Lệnh convert của Imagemagick thường được sử dụng để chuyển đổi các tệp hình ảnh từ định dạng này sang định dạng khác và trong trường hợp này, có thể nó thực sự đang thực hiện chuyển đổi nội bộ các loại trước khi xuất hai "hình ảnh" (PDF) thành một tệp duy nhất.

Tôi sẽ đề nghị bạn xem xét sử dụng Bộ công cụ PDF (pdftk) thay vì http://www.accesspdf.com/pdftk/

Từ các ví dụ trên trang web, điều này sẽ đơn giản như:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf

Tôi đang chạy trên OS X 10.6.1 và tôi đã thử cài đặt pdftk qua Macports. Có vẻ như pdftk không được dùng nữa trên Mac, quá trình cài đặt sẽ không hoàn tất. Vì vậy, tôi đã cố gắng làm điều này bằng cách sử dụng Imagemagick.

Trên Ubuntu pdftk không có vấn đề gì để cài đặt từ apt và nó đã thực hiện thủ thuật này một cách tuyệt vời. Tôi đã sử dụng ImageMagick để ghép các tệp PDF lại với nhau rất thành công, nhưng vì nó làm cho các tệp PDF trước tiên (có thể hiểu được - nó không hoạt động với các vectơ) nên nó không phù hợp với hầu hết các tài liệu văn bản. Nhưng pdftk đã làm việc tuyệt vời - cảm ơn vì lời đề nghị.
Iguananaut

Tuyệt vời ... cảm ơn bạn
Dan Ortega

Chúng ta hãy nâng cấp cái này, pdftk hoạt động tốt hơn so với ghostcript làm điều này.
Dan Ortega

18

Nếu mọi tệp bạn muốn hợp nhất nằm trong cùng một thư mục:

convert -density 150 $(ls -rt *pdf) output.pdf

đối số -density 150giữ chất lượng của các tệp PDF đã hợp nhất.


5
Một ghi chú bên trên tất cả cú pháp PDF của bạn, bạn có thể bỏ qua lệnh sub-ls:convert -density 150 *.pdf output.pdf
Josh

'* .pdf' và '$ (ls -rt * pdf)' có thể dẫn đến đầu ra khác nhau.
shantanoo

8

Tôi luôn quên làm thế nào để làm điều này và tìm câu hỏi này đầu tiên khi tôi tìm kiếm.

convert -density 600 file1.pdf file2.pdf -resize 50% new.pdf

Ví dụ được liên kết có mật độ ở 144, tuy nhiên, chưa bao giờ đủ cao để không xuất hiện pixel.

http://web.archive.org/web/20130311071316/http://studio.imagemagick.org/pipermail/magick-users/2009-September/022958.html


Xin lỗi, liên kết đã chết bây giờ.
Sablefoste


0

Tôi không thể tìm thấy bất kỳ cách nào để nối hai tệp pdf với nhau trong khi vẫn giữ độ phân giải tốt và văn bản nguyên vẹn, nhưng tôi đã tìm ra cách để chuyển đổi nó thành tệp png có độ phân giải cao.

pdftoppm -f 1 -l 1 -aa yes -aaVector yes -png -r 300 page.pdf > tmp1.png
pdftoppm -f 2 -l 2 -aa yes -aaVector yes -png -r 300 page.pdf > tmp2.png
convert tmp1.png tmp2.png +append -quality 100 page.png

Điều này sẽ đưa đến hai trang đầu tiên của page.pdf và nối chúng thành một tệp png có độ phân giải cao cạnh nhau.

Thay đổi dòng cuối cùng thành

convert tmp1.png tmp2.png +append -quality 100 page.pdf

sẽ dẫn đến một đầu ra tài liệu pdf như sau này tôi đã tìm ra sau khi làm hỏng với pngtopnm, pnmtops, ps2pdf.


2
-1 để đề xuất rasterize một hình ảnh vector (có thể). Đó không phải là con đường để đi.
Marco
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.