imagestopdf   [plain text]


#!/usr/bin/python
#
# Usage: imagestopdf [image-file ...] pdf-file
#
# This script creates the specified PDF file. The contents
# of each image file are placed into the PDF, one per page.
#

import sys, os
from CoreGraphics import *


if len(sys.argv) > 2 :
	
	hasImages = False
	defaultPageRect = CGRectMake(0, 0, 612, 792)
	pdfFile = CGPDFContextCreateWithFilename(sys.argv[-1], defaultPageRect)
	
	for arg in sys.argv[1:-1] :
                image, transform = CGImageImportWithAffineTransform(CGDataProviderCreateWithFilename(arg));
                
		if image is not None:
                        imageSize = CGPointMake(image.getWidth(), image.getHeight())
                        if transform is not None :
                            imageSize = imageSize.applyAffineTransform(transform)
                        pageRect = CGRectMake(0, 0, imageSize.x, imageSize.y)
		
			pdfFile.beginPage(pageRect)
			pdfFile.drawImage(pageRect, image)
			pdfFile.endPage()

			hasImages = True
		else:
			print >> sys.stderr, 'imagestopdf: invalid image file "' + arg + '"'

	pdfFile.finish()

	if hasImages is False:
		os.remove(sys.argv[-1])
		sys.exit('imagestopdf: no images found!')

else :
	print >> sys.stderr, 'Usage: imagestopdf [image-file ...] pdf-file'
	sys.exit(2)