I've really stuck on how to do this, I thought it would be easy, but maybe not!

I want to create a small thumbnail image from the first page of a pdf in automator so I can batch convert a load of them at once. Is that possible? If so, what actions do I need to set up?


Since there is no way to extract a single page from a PDF in Automator, you can try with this Python script. It will extract the first page of each passed pdf in a temporary pdf file:

#! /usr/bin/python
import sys
import os
import tempfile
from Quartz.CoreGraphics import *
from os.path import splitext
from os.path import basename
from os.path import join

def createPDFDocumentWithPath(path):
    return CGPDFDocumentCreateWithURL(CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, path, len(path), False))

def main(argv):

    for input_pdf_filename in argv:
        doc = createPDFDocumentWithPath(input_pdf_filename)
        page_one = CGPDFDocumentGetPage(doc, 1)
        mediaBox = CGPDFPageGetBoxRect(page_one, kCGPDFMediaBox)
        if CGRectIsEmpty(mediaBox):
            mediaBox = None

        file_name, extension = splitext(basename(input_pdf_filename))
        output_path = join(tempfile.gettempdir(), file_name + "_page1" + extension)
        writeContext = CGPDFContextCreateWithURL(CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, output_path, len(output_path), False), None, None)
        CGContextBeginPage(writeContext, mediaBox)
        CGContextDrawPDFPage(writeContext, page_one)
        del writeContext

        print output_path

if __name__ == "__main__":

You can put it as a Run Shell Script step in an Automator workflow, similar to what @Graham Miln suggested:

enter image description here

Be sure to set Pass Input to as arguments, not to to stdin in the Run Shell Script step.

  • That is so incredibly inspired - thanks for taking the time to do that, works absolutely perfectly! – Osu Oct 27 '12 at 7:35

The following Automator workflow creates thumbnails for every page:

  1. Get Specified Finder Items
  2. Render PDF Pages as Images
  3. Scale Images
  4. Move Finder Items

With the thumbnails created, you can then delete all but the first page images. You may be able to automate this step as well; consider adding a Filter Finder Items Action before the Move Finder Items.

enter image description here


You must log in to answer this question.

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