Ubuntu – How to convert a .pdf file into a folder of images

11.10convertpdfsoftware-recommendation

I have some .pdf files that I would like to convert to my preferred reading format of .cbr or .cbz or, if this isn't directly possible, I need to extract all pages from the .pdf as images and then compress them into my format of choice. I have only been able to save pages one at a time with Document Viewer. Obviously, I'd like to do it a little quicker. I have tried pdfsam, pdf shuffler, and pdfmod all with no luck. I am using Ubuntu 11.10.

Best Answer

OK well, I did some more research and although tohuwawohu's method does work, I found it easier to use a program called pdftoppm to achieve what I wanted done. Since I am pretty much a layperson when it comes to using command line apps, I will do my best to explain how I got this to work for me.

  1. Navigate to the folder containing the .pdf you wish to edit and open a terminal there. I did this by using the sample command:

    cd ~/Documents/PDF
    
  2. Let's say the file I want to edit is called Sample.pdf What I want to do is use pdftoppm to create image files of each page of the .pdf. Several formats can be chosen (see the man pages link above) but I prefer to use .png. The basic command looks like this:

    pdftoppm -FORMAT FILENAME.pdf PREFIX
    

    or in the example above:

    pdftoppm -png Sample.pdf Sample
    

    This command creates an image file of each page in the same folder as the original .pdf file with names like Sample-01.png, Sample-02.png and so on. I have tried it with the .png and .jpeg extensions successfully. .jpg is apparently not supported.

  3. Then I just use Archive Manager by selecting all the newly-created image files, right-clicking, and choosing "Compress" from the context menu. I then choose the archive format I prefer (in this case .cbz or Comic Book Zip) and create the new archive.

  4. Now I have a shiny new .cbz file called Sample.cbz which I can then view with my Comix reader!

Hopefully what I have posted above makes enough sense that someone else can learn from it. If I need to change it in any way please let me know.