La propia acción Automator de Apple utiliza un script de Python para acceder a Core Graphics. Funciona, pero es lento. He aquí un mejor script que utiliza el nuevo marco PDFKit de Apple.
Puede utilizarlo desde el Terminal con los nombres de los archivos como argumentos, o puede incluirlo en una acción de Automator Run Shell script.
Sin instalaciones ni dependencias.
#!/usr/bin/python
# coding: utf-8
#
# IMAGE2PDF v.2.0 : Convert image files to one PDF.
# by Ben Byram-Wigfield
import sys, os
import Quartz as Quartz
from LaunchServices import kUTTypePDF
from CoreFoundation import NSImage
def getFilename(filepath, basename):
fullname = basename + ".pdf"
i=0
while os.path.exists(os.path.join(filepath, fullname)):
i += 1
fullname = basename + " %02d.pdf"%i
return os.path.join(filepath, fullname)
def imageToPdf(argv):
prefix = os.path.dirname(argv[0])
filename = "Combined"
pdfout = getFilename(prefix, filename)
for index, eachFile in enumerate(argv):
image = NSImage.alloc().initWithContentsOfFile_(eachFile)
if image:
page = Quartz.PDFPage.alloc().initWithImage_(image)
if index == 0:
pageData = page.dataRepresentation()
pdf = Quartz.PDFDocument.alloc().initWithData_(pageData)
else:
pdf.insertPage_atIndex_(page, index)
pdf.writeToFile_(pdfout)
if __name__ == "__main__":
imageToPdf(sys.argv[1:])
0 votos
Automator tiene una acción para "crear PDF a partir de imágenes" (y otra para comprimir imágenes dentro de los PDF).
0 votos
¿Has pensado en convertir los archivos .ppm a jpeg o algo similar y luego trabajar con archivos de imagen normales?
0 votos
Sips puede no funcionar con archivos ppm.