117

Openning a png file in ubuntu, I can see the menu item for 'print to file'. How can I do the same on shell? PS: I prefer installing no extra package, due to lack of root access.

EDIT: the operating system is ubuntu 11.10

4 Answers 4

174

convert xyz.png xyz.pdf should do the trick.

See man convert for more options.


As mentioned in a comment below, if you get a security error, you may need to edit the security policy file. For additional details see:

9
  • 20
    +1 - additionally you can use wildcards: convert *.png file.pdf Jun 30, 2012 at 18:49
  • 3
    Yes it requires the ImageMagick package, although it was there by default on my Ubuntu 12.04
    – abhshkdz
    Jun 30, 2012 at 19:29
  • 5
    Be careful if you use wildcards, files might not appear in the desired order, especially if filenames contain numbers (for example, a file named 17.png will precede a file named 2.png). To preview the order in which they will be merged into the pdf file, you can use the command echo *.png.
    – user396895
    Apr 10, 2015 at 20:24
  • 5
    convert-im6.q16: not authorized `h1.pdf' @ error/constitute.c/WriteImage/1037.
    – momo2047
    Mar 12, 2020 at 22:13
  • 8
    attempt to perform an operation not allowed by the security policy PDF'`
    – Cerin
    Apr 6, 2023 at 21:02
33

If you want to convert multiple images, e.g. png files, into one single pdf use convert with the specified pdf filename at the end

convert *.png mydoc.pdf

It will merge all png files into a sinlge mydoc.pdf file in a descendant order.

4
  • 15
    convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
    – mathtick
    May 14, 2020 at 9:19
  • It seems more like a problem of a security policy of the environment you are working on. Sorry, I cannot say too much about that error.
    – EliuX
    May 15, 2020 at 1:54
  • 3
    Batch conversion of png to pdf has details on the 'convert-im6.q16' issue. Oct 9, 2020 at 19:00
  • Thank you for your link, artless noise, the accepted answer worked fine for me !
    – Axel B
    Sep 20, 2021 at 10:58
6

In 18.04 LTS, open image using ImageViewer; then print to file as a PDF.

1
  • 1
    Does not look like a command line advice. Dec 19, 2022 at 23:51
1

If converting each PNG file to separate PDF files is necessary:

for file in *.png; do convert ${file} ${file:0:-4}.pdf; done

This command takes all PNG files in a directory and produces PDF files with the same name.

2
  • Is that Imagemagick's convert command? Might it be the case that your answer is valid only up to Imagemagick V6? V7 would need magick convert? See: askubuntu.com/a/1315605/1157519 (Ah o.k. this thread is full with convert... Then again, those are dated answers.)
    – Levente
    Dec 19, 2022 at 23:16
  • 1
    Don't use $(ls *.png) for looping over files. It's vulnerable for whitespace and unnecessarily verbose. Just use for file in *.png, which is neither nor. Dec 19, 2022 at 23:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .