¿Cómo representar solo la primera página en PDF como imagen y luego cambiar el tamaño?

Realmente me he atascado en cómo hacer esto, pensé que sería fácil, ¡pero tal vez no!

Quiero crear una pequeña imagen en miniatura de la primera página de un pdf en Automator para poder convertir por lotes una gran cantidad de ellos a la vez. ¿Es eso posible? Si es así, ¿qué acciones debo configurar?

Respuestas (2)

Dado que no hay forma de extraer una sola página de un PDF en Automator, puede probar con este script 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:])

Puede ponerlo como un Run Shell Scriptpaso en un flujo de trabajo de Automator, similar a lo que sugirió @Graham Miln:

ingrese la descripción de la imagen aquí

Asegúrese de establecer Pass Inputen as arguments, no to stdinen el Run Shell Scriptpaso.

Eso es tan increíblemente inspirado. Gracias por tomarse el tiempo para hacerlo, ¡funciona absolutamente a la perfección!

El siguiente flujo de trabajo de Automator crea miniaturas para cada página:

  1. Obtener elementos de búsqueda especificados
  2. Renderizar páginas PDF como imágenes
  3. Imágenes a escala
  4. Mover elementos del buscador

Con las miniaturas creadas, puede eliminar todas las imágenes excepto las de la primera página. También puede automatizar este paso; considere agregar una Acción de elementos del buscador de filtros antes de Mover elementos del buscador .

ingrese la descripción de la imagen aquí