Ya que no hay forma de extraer una sola página de un PDF en Automator, puedes probar con esta secuencia de comandos de Python. Extraerá la primera página de cada pdf pasado en un archivo pdf temporal:
#! /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)
CGContextEndPage(writeContext)
CGPDFContextClose(writeContext)
del writeContext
print output_path
if __name__ == "__main__":
main(sys.argv[1:])
Puedes ponerlo como un paso Run Shell Script
en un flujo de trabajo de Automator, similar a lo que sugirió @Graham Miln:
Asegúrate de establecer Pass Input
en as arguments
, no en to stdin
en el paso Run Shell Script
.