Lần trước tôi đã sử dụng convertcho một nhiệm vụ như vậy, tôi đã chỉ định rõ ràng kích thước của điểm đến thông qua thay đổi kích thước:
$ i=150; convert a.png b.png -compress jpeg -quality 70 \
-density ${i}x${i} -units PixelsPerInch \
-resize $((i*827/100))x$((i*1169/100)) \
-repage $((i*827/100))x$((i*1169/100)) multipage.pdf
Các convertlệnh không luôn luôn sử dụng DPI như đơn vị dạng mật độ default / trang, do đó chúng tôi chỉ định rõ ràng DPI với -unitstùy chọn (nếu không bạn có thể nhận được kết quả khác nhau với các phiên bản khác nhau / định dạng đầu vào kết hợp). Kích thước mới (được chỉ định qua -resize) là kích thước của trang DIN A4 tính bằng pixel. Đối số thay đổi kích thước chỉ định kích thước trang tối đa. Độ phân giải và chất lượng để chọn chính xác tùy thuộc vào trường hợp sử dụng - Tôi đã chọn 150 DPI và chất lượng trung bình để tiết kiệm một số không gian trong khi nó trông không tệ lắm khi được in trên giấy.
Lưu ý rằng converttheo mặc định không thay đổi tỷ lệ khung hình với thao tác thay đổi kích thước:
Thay đổi kích thước sẽ phù hợp với hình ảnh vào kích thước yêu cầu. Nó KHÔNG điền, kích thước hộp yêu cầu.
( Hướng dẫn sử dụng ImageMagick )
Tùy thuộc vào phiên bản ImageMagick và các định dạng đầu vào có liên quan, có thể bỏ qua -repagetùy chọn này. Nhưng đôi khi, bắt buộc và không có tùy chọn đó, tiêu đề PDF có thể chứa kích thước quá nhỏ. Trong mọi trường hợp, -repagekhông nên làm tổn thương.
Các tính toán sử dụng số học số nguyên vì bashchỉ hỗ trợ điều đó. Với zshcác biểu thức có thể được đơn giản hóa - tức là thay thế bằng $((i*8.27))x$((i*11.69)).
Hình ảnh tuyến tính
Nếu các tệp PNG là hình ảnh hai cấp (đen & trắng aka lineart) thì img2pdfcông cụ mang lại kết quả vượt trội so với ImageMagick convert. Điều đó có nghĩa img2pdflà nhanh hơn và mang lại các tệp PDF nhỏ hơn.
Thí dụ:
$ img2pdf -o multipage.pdf a.png b.png
hoặc là:
$ img2pdf --pagesize A4 -o multipage.pdf a.png b.png
-repage a4tôi nhận được mộtinvalid argument for option '-repage': a4