Python コード例(その1):表紙つきPDFを作成する方法

ArcGIS 10 で スクリプト言語であるPython の機能が拡張され、マッピング操作(mapping モジュール)をサポートするようになりました。ArcGIS 10 の Pythonコードを使用すれば、お手持ちのマップを PDF にエクスポートし、それに任意の表紙をつけることが可能です。ArcMapで作成した地図をPDFに出力できることは、みなさんご存知の機能かもしれませんが、それに表紙をつけることができるようになりました。これでマップを他のユーザと共有したり、プレゼンテーション ツールとして使用したり、もっとArcMapを活用することができます。

事前準備:表紙として使用するPDFファイル(Title.pdf)
※ PDFファイルはセキュリティ制限がないものをご利用ください。

Blog2010122401_5

以下のマップを表紙つきPDFに出力します。

Blog2010122402_5

Pythonウィンドウでの記述

現在のマップをPDFにエクスポートした後、表紙とマージして1枚のPDFを作成する例

import arcpy,os
mxd = arcpy.mapping.MapDocument("CURRENT")
arcpy.mapping.ExportToPDF(mxd,r"C:Projectdist.pdf")
pdfPath = r"C:ProjectOutMapBook.pdf"
pdfDoc = arcpy.mapping.PDFDocumentCreate(pdfPath)
pdfDoc.appendPages(r"C:ProjectTitle.pdf")
pdfDoc.appendPages(r"C:Projectdist.pdf")
pdfDoc.saveAndClose()
del pdfDoc
del mxd

Pythonスクリプトでの記述

# -*- coding: cp932 -*-
import arcpy,os
#ファイル名の設定とすでに存在する場合は PDF を削除
pdfPath = r"C:ProjectOutMapBook.pdf"
if os.path.exists(pdfPath):
os.remove(pdfPath)
#マップ ドキュメントから PDF を作成
mxd = arcpy.mapping.MapDocument(r"C:ProjectMap.mxd")
arcpy.mapping.ExportToPDF(mxd,r"C:Projectdist.pdf")
#ファイルの作成とページの適用
pdfDoc = arcpy.mapping.PDFDocumentCreate(pdfPath)
pdfDoc.appendPages(r"C:ProjectTitle.pdf")
pdfDoc.appendPages(r"C:Projectdist.pdf")
#保存と変数の削除
pdfDoc.saveAndClose()
del pdfDoc
del mxd

上記コードを使用して以下のような表紙つきPDFが簡単に作成できます。ぜひ皆さんご活用ください。

Blog2010122403_3

参考ヘルプ:※一部英語のままですのでご了承ください。
MapDocument(mapping モジュール)
PDFDocument(mapping モジュール)
ExportToPDF(mapping モジュール)

[注意事項]
本Python コードは、サンプルとして提供しておりますのでサポート対象外となります。従って、サンプルプログラムに関するご質問はお受けできません。
また、本サンプルを使用して生じたいかなる障害についても、弊社では責任を負いかねますことを予めご了承願います。

■関連リンク
Python コード例(その2):時系列マップをPDF に出力する方法
Python コード例(その3):フィールド演算を使用して昇順で ID を割り当てる方法
Python コード例(その4):ArcPy で Geometry オブジェクトを使用する方法
Python コード例(その5):ModelBuilder で Python の “If 文” を使用する