API-SUMMARY

ドキュメントのなかに、Python Bindings for Quartz 2Dでは、次のような感じでラップされていると書かれています。*1

For example, in Quartz 2D the code to draw an image is:
CGContextDrawImage (ctx, rect, image);
Using Python, the code is:
ctx.drawImage (rect, image);

なるほどー。わかったような、わからないような・・・(笑)

「サンプルがあるので見てね」と書いてあるので、そいつを見た方が早いでしょう。場所は/Developer/Examples/Quartz/Python/になります。

ざっとみて10個くらいサンプルがありますが、PDFをJPEGに変換するサンプルは残念ながらありません(あったらそもそもこんな日記は書かない・・ )。おしいのが、

pict2pdf.py

で、PICTファイルをPDFに変換すると言う、逆の処理です(笑)。

ところで、API-SUMMARYというファイルがサンプルのディレクトリの中に入っています。これはそのものずばり、PythonでのQuartz2D APIのまとめで、このファイルの最初の方に重要なコメントがあります。

# Example:
# from CoreGraphics import *
#
# ctx = CGBitmapContextCreateWithColor (612, 792,
# CGColorSpaceCreateDeviceRGB (), (0, 0, 0, 0))
#
# pdf = CGPDFDocumentCreateWithProvider (
# CGDataProviderCreateWithFilename ("in.pdf"))
#
# ctx.drawPDFDocument (CGRectMake (0, 0, 612, 792), pdf, 1)
# ctx.writeToFile ("out.png", kCGImageFormatPNG)

やってることは、BitmapContextを作って、PDFを読み込んで、BitmapContextにdrawPdfDocumentしてあげて、最後にwriteToFileでPNG形式で書き出してます。これをベースにスクリプトを書いていけば良い感じです。最初からこいつを見ときゃ良かった・・というわけで、このスクリプトを手がかりに進めていきたいと思います。