On 13 Jul, 2011, at 4:00, Jim Skibbie wrote:

> I have a python script that takes a PDF file and returns the width and height 
> of the document's first page. When I moved this to Snow Leopard, I have to 
> run this in 32-bit mode or I can an error:
> File 
> "/BinaryCache/CoreGraphicsBindings/CoreGraphicsBindings-26~139/Root/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/CoreGraphics/__init__.py",
>  line 7, in <module>
> ImportError: 
> /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/CoreGraphics/_CoreGraphics.so:
>  no appropriate 64-bit architecture
> Googling around, I find that CoreGraphics is no longer bound to python in 
> Snow Leopard and that it will eventually need to be converted to PyObjC.
> Can anyone point me in a direction on where I might find some information on 
> how to do this kind of porting?

The Quartz APIs are available through pyobjc (using "import Quartz").   IIIRC 
the CoreGraphics module contains an OO-ish interface, the Quartz module is just 
a straightforward mapping of the C API,  which means you have to call global 
functions instead of methods on objects.

One thing you will probably run into is functions that aren't avaiable in the 
Quartz package: the CoreGraphics module contains a number of functions that 
aren't wrappers for functions in the public C API of the CoreGraphics 
framework, and those functions are therefore not available in the Quartz .

Ronald
> The existing script is below:
> # step 1: import the required modules
> import os, sys
> from CoreGraphics import *
> 
> if len( sys.argv ) != 2:
>       print "ERROR: useage: python example2.py pdf_filename"
>       sys.exit(1)
> 
> # step 2: read the pdf file name from the command line arguments
> pdf_filename = sys.argv[1]
> pdf_name, ext = os.path.splitext( pdf_filename )
> 
> # step 3: create the input PDF document
> provider = CGDataProviderCreateWithFilename( pdf_filename )
> pdf = CGPDFDocumentCreateWithProvider( provider )
> if pdf is None:
>       print "ERROR reading PDF document - \r\n check that the supplied 
> filename points to a PDF file"
>       sys.exit(1)
> 
> page_number = 1
> 
> #page_rect = pdf.getMediaBox( page_number )
> 
> page_rect = pdf.getPage(page_number).getBoxRect(page_number)
> 
> page_width = float(page_rect.getWidth())
> page_height = float(page_rect.getHeight())
> 
> print "%f\r\n%f" % (page_width, page_height)
> 
> Thanks.
> Jim
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
> http://mail.python.org/mailman/listinfo/pythonmac-sig
> unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to