多くの場合、マップの印刷は、ワープロの文書や PowerPoint のプレゼンテーションの単純な印刷よりも処理が複雑になります。マップ ファイルはサイズが非常に大きくなり、印刷中に、一時的に大量のディスク領域を消費する可能性があります。さらに、マップ レイアウトのページ サイズが、印刷用紙のサイズを超えることもあります。このトピックでは、ArcGIS でマップを印刷する際の多くの検討事項と利用可能なオプションについて説明します。
プロッタ(大判プリンタ)用のマップ印刷の設定
GIS 組織は多くの場合、小判のオフィス用プリンタよりも大きいページ サイズに対応できるプリンタを所有しています。最初の重要なステップは、ArcGIS でお使いの大判プリンタを参照することです。プリンタを変更するには、[ページ設定/印刷設定] ダイアログ ボックスを開いて、[名前] ドロップダウンを使用して現在のプリンタを設定します。
マップ レイアウトのページ サイズの設定
レイアウトは、印刷ページ上にさまざまなタイプのマップ エレメントを配置したものであるため、レイアウト作成で最初に行うステップの 1 つは、[ページ設定/印刷設定] ダイアログ ボックスを使用して適切なページ サイズを設定する作業になります。デフォルトでは、ArcMap でマップを新規作成し、[空のマップ] を選択したときに、レイアウト ページのサイズがデフォルトのプリンタのページ サイズに設定されます。
レイアウトのページ サイズを設定する手順
- メイン メニューで [ファイル] > [ページ設定/印刷設定] の順にクリックして、[ページ設定/印刷設定] ダイアログ ボックスを開きます。
- レイアウトのページ サイズは次のように設定できます。 デフォルトでは、空のマップのレイアウトのページ サイズは、プリンタのページ サイズ(8.5 x 11 インチなど)に設定されます。
- 独自のページ サイズを設定するには、[プリンタの用紙設定を使用] チェックボックスをオフにして、レイアウトのページ サイズを設定します。このオプションをオフにすると、任意のページ サイズを選択できますが、プリンタ名はマップ ドキュメント(*.mxd)とともに保存されません。
- ページ サイズを設定するには、[幅] および [高さ] の入力ボックスに適切なサイズを入力します。 あるいは、[標準サイズ] ドロップダウン リストから、ANSI C、Architectural D、ISO A2 などの標準ページ サイズを選択することもできます。
- レイアウトのページ サイズを変更すると、すべてのマップ エレメントのサイズと位置を新しいページ サイズに合わせて変更することが必要になります。これは、完全に新規のマップを扱っていて、まだマップ エレメントやレイヤの追加を始めていない場合でも必要です。
[プリンタの用紙設定を使用] チェックボックスをオンにした場合、[マップのページ サイズ] は現在のプリンタの [用紙サイズ] にリンクされます。デフォルトでは、[新規ドキュメント] または [ArcMap - はじめに] ダイアログ ボックスで [空のマップ] オプションを指定して作成された新規のマップについては、このオプションがオンになります。次の例では、ArcMap でデフォルトとして使用されるプリンタ設定の [用紙サイズ] は 8.5 x 11 インチです。ただし、[マップのページ サイズ] は元の 8.5 x 11 とはリンクしておらず、さらに大きい 22 x 34 に設定されています。最初のデータ フレームは、元のもっと小さいページ サイズに基づいてレイアウトに配置されました。そのため、[マップのページ サイズ] を変更した後に、ArcMap でレイアウト ビューを使用してレイアウトを再配置する必要があります。データ フレームとレイアウトのエレメントを、新しいページ サイズに合うように再配置します。
プリンタ エンジンの選択
ArcGIS は次の 3 種類のプリンタ エンジンをサポートしています。
- Windows プリンタ エンジンは、デフォルトのプリンタ エンジンであり、印刷時の第一選択肢です。Windows プリンタ エンジンは、プリンタのベンダによって書かれたネイティブ ドライバを使用するための入り口です。これは一般に、印刷のための最も単純なソリューションです。ただし、大きいマップ ファイル(特にラスタ データを含むファイル)に Windows プリンタ エンジンを使用すると、リソースが集中的に使用される可能性があります。さらに、Microsoft は Windows の一部としてプリンタの汎用ドライバを供給しているため、それらは一般に共通のタスクに適しています。ただし、プリンタ ベンダの Web サイトから最新のドライバを入手することが推奨されます。
- PostScript プリンタ エンジンは、出版物や商用印刷物で必要な色版分解やトンボなどの特殊な出力(生成)をする際に使用できます。
- ArcPress プリンタ エンジンには、Esri または Esri とプリンタ ベンダの共同開発によるプリンタ ドライバが含まれています。ArcPress は、主に中判および大判プリンタでの使用を想定して設計されています。ArcPress の 1 つの利点は、重いマップ印刷作業がコンピュータ側で処理されるため、負荷が掛かりすぎてハングアップする可能性のあるプリンタ側の作業を軽減できることです。プリンタの購入時に選択する処理性能、RAM、ディスク容量などのオプションはさまざまなので(PostScript インタープリタや内蔵ラスタライザなどがオプションになることもあります)、マップによってはプリンタの処理性能を超えてしまうことがあります。
ワークグループ内で専用コンピュータを導入して ArcPress を使用し、特定のプリンタに同時に印刷する多くのユーザをサポートすることもできます。これにより、プリンタが各印刷ジョブの処理から解放され、一定時間内に印刷できるマップの数が増えます。
お使いのプリンタ用の ArcPress プリンタ エンジン ドライバが存在し、マップのページ サイズが大きく、マップが以下のいずれかを含む場合は、ArcPress プリンタ エンジン ドライバを使用すべきです。
- オルソ画像などの大きなラスタ画像
- 透過レイヤ
- マスキングまたはシンボル レベル ドローイングへの大きい依存
- ビットマップ画像に基づくシンボルまたは塗りつぶし
出力画像の品質を使用して印刷の品質と速度を制御する
[出力画像の品質(リサンプリング率)] は、ラスタのリサンプリングの量を制御します。ラスタ データまたは透過表示を設定したベクタ レイヤがマップに含まれていない場合、出力画像の品質を設定しても、マップの印刷品質に影響を与えません。
[出力画像の品質(リサンプリング率)] コントロールは、出力でのラスタ コンテンツの有効解像度を決定します。たとえば、出力画像品質のリサンプリング率を 1:2 に設定した場合、出力解像度が 300 dpi に設定されていると、ラスタ コンテンツは約 150 dpi で出力されます。
[出力画像の品質(リサンプリング率)] スライダを [高品質](つまり 1:1 の比率)に設定すると、リサンプリングは実行されません。デフォルトでは、[出力画像の品質(リサンプリング率)] は [標準] に設定されます。
マップのコンテンツに最適な設定を決定するために、複数の [出力画像の品質(リサンプリング率)] の設定でサンプル マップのエクスポートまたは印刷を試してみる必要があるでしょう。マップに含める予定のデータおよびその他のマップ エレメントのサンプルを含むサンプル マップを作成することができます。サンプル マップをさまざまな設定で出力します。最短の処理時間で高品質の出力が得られる dpi と適切な品質モードを見つけます。
タイル オプションを使用したマップ印刷
レイアウトのサイズがプリンタの用紙設定よりも大きい場合は、タイル オプションを使用してマップを印刷できます。タイル オプションを有効にするには、[ページ設定/印刷設定] ダイアログ ボックスの [プリンタの用紙設定を使用] チェックボックスをオフにします。マップにデータ ドリブン ページがある場合は、タイル オプションを使用できません。データ ドリブン ページのタイル分割印刷はサポートされていません。
[プリンタの用紙設定を使用] オプションをオフにすると、[マップのページ サイズ] をプリンタ設定の [用紙サイズ] とは別の値に設定できるようになります。その結果、[印刷] ダイアログ ボックスの 3 つのタイル オプションが有効になります。
[すべて] または [タイル指定] オプションを選択すると、レイアウトが複数のプリンタ ページにわたって印刷されます。[プリンタ用紙サイズにあわせてマップをスケーリング] オプションを選択すると、ページにあわせてマップ イメージが拡大/縮小されます。これにより、コピー機でマップを拡大/縮小するのと同じ効果が得られます。このオプションを使用すると、縮尺テキストなどの動的なマップ エレメントは更新されないため、最終的に正しい値が印刷されない場合があります。
タイル出力のテスト
マップを複数のタイルとして印刷する場合は、最初にテスト用のプロットを作成すると便利です。たとえば、1 つか 2 つのタイルだけを印刷したり、空のデータ フレームと他の 2、3 のマップ エレメントを含む単純なレイアウトを作成したりできます。テスト用のプロットにより、タイル オプションの設定が正しいことを確認できるため、大量の用紙とインクを正しくない印刷のために無駄に消費しなくてすみます。
マップ印刷のトラブルシューティング
印刷に関する一般的な問題と、その対処方法について説明します。
マップの印刷に時間がかかりすぎるか、処理中に失敗する
大きいマップまたは複雑なマップを印刷できない場合は、コンピュータを再起動して、コンピュータのページファイル システムを削除してください。ページファイル システムを専用ドライブまたは専用パーティションに配置していない場合は、ドライブが最適化(デフラグ)されているか確認してください。コンピュータを再起動したら、すぐに MXD ドキュメントを開き、他のアプリケーションを実行する前に ArcMap から印刷します。再起動によりメモリ割り当てが解放され、他のアプリケーションを実行しないことでメモリの断片化を防ぐことができます。これは、マップの印刷を成功させるために役立ちます。
印刷したマップがごつごつした感じに見える(ピクセルが目立つ)- ラスタ化
レイヤの透過表示と BMP ベースのピクチャ シンボルにより、出力時にマップをラスタ化することができます。ラスタ化により、透過表示または BMP ピクチャ シンボルが含まれたデータ レイヤの下にあるすべてのレイヤが、エクスポートまたは印刷スプール ファイルでフラットなラスタ イメージに変換されます。透過表示レイヤと同じグループ レイヤにあるすべてのレイヤもラスタ化の対象になります。ラスタ化を避けるには、BMP ピクチャ シンボルを ベクタのみの EMF ピクチャ、またはフォント ベースの絵文字マーカー シンボルと置き換えます。必要のないレイヤ透過表示の使用を除去すると、望ましくないレイヤのラスタ化も軽減されます。
ラスタ化レイヤの検出この arcpy.mapping スクリプトを Python ウィンドウで実行すると、印刷またはエクスポートの際にラスタ化を起こす可能性のあるマップ内のレイヤが報告されます。
import arcpy
def DetectRasterization():
mxd = arcpy.mapping.MapDocument("CURRENT")
df_list = arcpy.mapping.ListDataFrames(mxd)
foundRasterization = False
noneFoundMsg = "No rasterizing layers were detected."
for df in df_list:
lyr_list = arcpy.mapping.ListLayers(mxd, data_frame=df)
for lyr in lyr_list:
if lyr.isRasterizingLayer or lyr.supports("BRIGHTNESS"):
foundRasterization = True
if lyr.isGroupLayer and lyr.transparency > 0:
print "In data frame '" + df.name + "', the group layer '" + \
lyr.longName + "' is a rasterizing layer:\r",
print "\tVisibility is " + str(lyr.visible) + ".\n" + \
"\tTransparency is " + str(lyr.transparency) + " percent.\n"
elif not lyr.isGroupLayer:
print "In data frame '" + df.name + "', the layer '" + \
lyr.longName + "' is a rasterizing layer:\r",
if lyr.transparency > 0:
print "\tVisibility is " + str(lyr.visible) + ".\n" + \
"\tTransparency is " + str(lyr.transparency) + " percent.\n"
else:
print "\tVisibility is " + str(lyr.visible) + ".\n" + \
"\tTransparency is 0 percent, but the layer may be a\n" + \
"\traster layer or contain rasterizing symbology such\n" + \
"\tas bitmap picture symbols.\n"
del lyr
del lyr_list
del df
if not foundRasterization:
print noneFoundMsg
del df_list
del mxd
DetectRasterization()