3 votos

Cómo se representa sólo la primera página en PDF como imagen y, a continuación, cambiar el tamaño?

Realmente he atascado en la forma de hacer esto, pensé que sería fácil, pero tal vez no!

Quiero crear una imagen en miniatura de la primera página de un pdf en automator para que yo pueda convertir por lotes de una carga de una sola vez. Es eso posible? Si es así, ¿qué acciones debo configurar?

4voto

Derek Morrison Puntos 2359

Ya que no hay manera de extraer una sola página de un PDF en Automator, puedes probar con esta secuencia de comandos de Python. Se va a extraer la primera página de cada uno de ellos pasó pdf de forma temporal el archivo pdf:

#! /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:])

Usted puede ponerlo como un Run Shell Script paso de un flujo de trabajo de Automator, similar a lo que @Graham Miln se sugiere:

enter image description here

Asegúrese de establecer Pass Input a as arguments, no to stdin en la Run Shell Script paso.

3voto

Steve Evans Puntos 155

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

  1. Obtener Especificado Buscador De Artículos
  2. Renderizado de las Páginas PDF como Imágenes
  3. Imágenes En Escala De
  4. Mover Buscador De Artículos

Con las miniaturas creadas, puede, a continuación, elimine todos, pero la primera página de imágenes. Usted puede ser capaz de automatizar este paso, así, considerar la adición de un Filtro de Buscador de Artículos de Acción antes de Mover el Buscador de Artículos.

enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X