I have multiple .png files (for example: pic_001.png, pic_002.png... pic_200.png). These are basically separate pages of the book.

I want to create a single printing job, that will print 2 such pictures per one physical page, so it would look like a usual book spread.

I've tried to do this like this:

lp pic_001.png pic_002.png pic_003.png pic_004.png -d color-printer-1 -o sides=one-sided -o number-up=2

but it was printing only 1 picture per 1 page.

The same result with the for-loop:

for i in `seq 1 2 8`; do lp pic_00$i.png pic_00$[$i + 1].png -d color-printer-1 -o sides=one-sided -o number-up=2; done

but also this creates separate jobs per pair of pictures.


Rather than use lp directly, you could try using imageMagick, to make one image out of two or more images, and then print them

convert image1.png image2.png image3.pgn -append output.png

will put the images one above the other. If you replace -append by +append, the images will be side-by-side instead.


lp doesn't know about image files; it can defer that to device-specific drivers, using options which exercise features "likely" to be supported by a variety of devices. The lp manual page does not list any suitable option for your purpose.

Instead, if you want multiple image files to display on a single sheet of paper, you can do this by combining images into single-page images in the arrangement you want. Programs such as ImageMagick are useful for this.

Further reading:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.