Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm still learning the command line, and I'm having trouble piping a list of files into graphicsmagick for conversion to pdf:

find . -type f | sort | gm convert file.pdf

This gives the error: gm convert: Request did not return an image.

Can I do this without resorting to more complicated methods?

share|improve this question
up vote 2 down vote accepted

This is an old question, but I found it looking for a solution to the same problem and never really found a complete answer. I came up with a simple(-ish) way of doing it myself:

gm convert $(find . -type f -printf '%p\0' | sort -z | sed 's/\x00/ /g') file.pdf

It won't work if there are spaces or new lines in any of the original files' paths, though.

This method has to execute convert once for every input file. It takes much (much much) longer, especially if there are a large number of original images, but it won't get tripped up by file names:

find . -type f -printf '%p\0' | sort -z | xargs -0 -I {} gm convert -adjoin file.pdf {} file.pdf
share|improve this answer

From the manual,

convert [ options ... ] input_file output_file

So you need to specify your files...

for i in `find . -type f | sort`
  gm convert "$i" "$i".pdf
share|improve this answer
This looks like it will convert each individual file into a pdf. What I need is to convert a group of files into a single pdf. Will this do that? – user2089518 Apr 13 '14 at 3:43
No. You'll need to use some other mechanism to do that. One program that can combine multiple images into a multi-page PDF is xsane. – Elliott Frisch Apr 13 '14 at 3:47

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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