概要
印刷をプログラミングから処理する上での問題点と、その解決方法をまとめました。
なお、当ページはAcrobatのインストールと同時にインストールされる「Adobe PDF」プリンターを中心に説明をします。当サイトの情報としては最適だからです。
※これ以降は Windows 10 Pro 64bit + Acrobat XI Pro 環境での内容です。
問題点
過去のコメントからの質問と既知の問題をまとめました。
- プリンターの印刷設定を変更したい。
- 通常使うプリンター(デフォルトプリンター)を変更したい。
- ダイアログ画面を出さないで印刷をしたい。
1.「プリンターの印刷設定を変更したい」
印刷設定とはWindows のデバイスとして登録されているプリンターで、印刷時の詳細な動作を指定した設定です。内容はプリンターにより変わります。
「Adobe PDF」プリンターをマウスで右クリックするとポップアップメニューが表示されます。「印刷設定」を選択します。
以下は「Adobe PDF」の印刷設定の初期画面です。
上記画面上の一部の項目がレジストリに対応しているのは確認済みです。しかしテストから「プログラミング(Windows API等)でのレジストリ変更」->「印刷設定の変更」は出来ませんでした。理由、原因は特定できていません。また全ての設定に対応するレジストリ項目が公開されて無く、それが判明してない限りはWindows API等を利用したプログラミングからの更新も出来ません。
それでも「印刷設定を更新する方法」は別のやり方で提供されています。
解決方法:
Microsoft が提供している「rundll32.exe printui.dll PrintUIEntry」コマンドで印刷設定の内容をファイルへ保存、又はそのファイルで設定の復元が出来ます。
手作業で印刷設定を変更した状態にして、その状態をファイルへ保存します。目的の印刷設定にしたいときに該当する保存ファイルを使って設定設定の更新(復元)を行います。
- 例:プリンタードライバー「Adobe PDF」の印刷設定の内容をファイル「printer_data.dat」に保存します。
rundll32.exe printui.dll PrintUIEntry /Ss /n "Adobe PDF" /a "printer_data.dat"
- 例:事前バックアップしたファイルを使って印刷設定を復元(更新)します。※「/Sr」に注目。
rundll32.exe printui.dll PrintUIEntry /Sr /n "Adobe PDF" /a "printer_data.dat"
人間が作成できるパターンの数しかファイルが作れないのが難点です。
サンプル「印刷設定の変更と復元」が有るので御覧ください。
2.「通常使うプリンターを変更したい」
PCの「通常使うプリンター」を一時的に「Adobe PDF」に変更したい時が有ります。特に、PrintPages、PrintPagesEx、PrintPagesSilent、PrintPagesSilentEx では通常使うプリンター(デフォルトプリンター)にしか印刷ができません。
解決方法:
一時的に通常使うプリンターを変更する手順です。プログラミングで全て出来ます。
- 最初にサンプル「関数:Windows のデフォルトプリンターを取得」でPCにインストールされているプリンター一覧を取得します。目的のプリンター名「Adobe PDF」がPCにインストールされているかをチェックします。
- 次に同じサンプル「関数:Windows のデフォルトプリンターを取得」で現在のデフォルトプリンター名を取得します。変更したいプリンター名と同じならば、これ以降の処理は不要です。
- プリンター名が違う時はサンプル「関数:通常使うプリンターを設定」で通常使うプリンター(デフォルトプリンター)を変更します。
- 必要ならば最後に、サンプル「関数:通常使うプリンターを設定」で元のプリンター名に復元します。
3.「ダイアログ画面を出さないで印刷をしたい」
プリンター名「Adobe PDF」へ印刷処理を行うとデフォルトでは以下が発生します。
- PDFとして保存するファイル名を求めるダイアログ画面が表示される。
- PDFファイルへ保存(印刷)された内容がデスクトップに再表示される。
これは「Adobe PDF」の印刷設定の以下の項目がデフォルトになっているからです。
- 「Adobe PDF 保存先フォルダー」:「Adobe PDF の保存先を確認」
これがダイアログ画面が表示される原因。 - 「結果の Adobe PDF を表示」 : オン
これがデスクトップに再表示される原因。
解決方法:
既に判っている人もいると思いますが、最初の「プリンターの印刷設定を変更したい」と同じです。
最初は手作業で行います。
- 事前に「Adobe PDF」の印刷設定の問題の2項目を変更した状態のファイル(A)を作成します。作成が出来たら、「Adobe PDF」の印刷設定を元の状態に戻します。
- 「Adobe PDF 保存先フォルダー」:保存先フォルダを指定
- 「結果の Adobe PDF を表示」:オフ
ここからはプログラミングの世界です。
- 現在の「Adobe PDF」の印刷設定の内容をファイル(B)にバックアップします。
- ファイル(A)を使って、「Adobe PDF」の印刷設定に書き出します。
これでダイアログ画面も、PDFの再表示も無くなります。 - 目的の印刷処理を「Adobe PDF」プリンターで行います。
- 処理が終わったらファイル(B)で「Adobe PDF」の印刷設定を元に戻します。
上記と全く同じサンプル「印刷設定の変更と復元」が有るので御覧ください。
「Adobe PDF」の設定一覧
「Adobe PDF」の印刷設定できる項目の一覧です。参考にしてください。
※バージョン:Acrobat XI Pro
- 「Adobe PDF 設定」タブ
- PDF 設定:
- PDF/A-1b:2005 (CMYK)
- PDF/A-1b:2005 (RGB)
- PDF/X-1a:2001
- PDF/X-1a:2001 (日本)
- PDF/X-3 2002 (日本)
- PDF/X-3:2002
- オーバーサイズページ
- プレス品質
- 高品質印刷
- 最小ファイルサイズ
- 雑誌広告送稿用
- 標準(デフォルト)
- Adobe PDF セキュリティ:
- なし(デフォルト)
- 各ジョブごとにセキュリティを確認
- 前回のセキュリティ設定を使用
- Adobe PDF 保存先フォルダー:
- Documents\*.pdf
- Adobe PDF の保存先を確認(デフォルト)
- Adobe PDF のページサイズ:
- 11 x 17、92 x 92、A0、A1、A2、A3、A3Extra、A4(デフォルト)、A4Extra、A5 Paper、ANSI C、ANSI D、ANSI E、ANSI F、ARCH A、ARCH B、ARCH C、ARCH D、ARCH E、ARCH E1、ARCH E2、ARCH E3、B0、B1、B2、B3、B4、B5、C5、Executive、ISO B1、ISO B2、ISO B4、ISO B5、JIS B0、JIS B1、JIS B2、JIS B3、JIS B4、Ledger、Legal、Letter、Oversize A0、Oversize A1、Oversize A2、Screen、Slide 7.5 x 10、Tabloid
- 結果の Adobe PDF を表示:オン(デフォルト)・オフ
- 文書情報を追加:オン(デフォルト)・オフ
- システムのフォントのみ使用し、文書のフォントを使用しない:オン(デフォルト)・オフ
- 成功したジョブのログファイルを削除:オン(デフォルト)・オフ
- 既存の PDF ファイルの上書きを確認:オン・オフ(デフォルト)
- PDF 設定:
- 「レイアウト」タブ
- 印刷の向き:
- 縦(デフォルト)
- 横
- 横置きに回転
- ページ形式 / シートごとのページ数:
- 1(デフォルト)、2、4、6、9、16
- 詳細設定:
Adobe PDF Converter 詳細オプション:
Adobe PDF Converter 詳細なドキュメントの設定:- 用紙/出力
- 用紙サイズ:
- 11 x 17、92 x 92、A0、A1、A2、A3、A3Extra、A4(デフォルト)、A4Extra、A5 Paper、ANSI、 C、ANSI D、ANSI E、ANSI F、ARCH A、ARCH B、ARCH C、ARCH D、ARCH E、ARCH E1、ARCH E2、ARCH E3、B0、B1、B2、B3、B4、B5、C5、Executive、ISO B1、ISO B2、ISO B4、ISO B5、JIS B0、JIS B1、JIS B2、JIS B3、JIS B4、Ledger、Legal、Letter、Oversize A0、Oversize A1、Oversize A2、PostScript カスタム ページ サイズ、Screen、Slide 7.5 x 10、Tabloid
- 部数:数値 部(1:デフォルト)
- 用紙サイズ:
- グラフィックス
- 印刷品質:72dpi、144dpi、300dpi、600dpi、1200dpi(デフォルト)、2400dpi、3600dpi、4000dpi
- イメージの色の管理
- ICMの方法:
- ICM 無効(デフォルト)
- ホスト システムによる ICM 処理
- プリンターによる ICM 処理
- プリンター調整による ICM 処理
- ICMの目的:
- グラフィックス
- 画像(デフォルト)
- 色の校正
- 完全一致
- ICMの方法:
- 拡大縮小:数値%(100%:デフォルト)
- TrueType フォント:
- デバイス フォントと代替(デフォルト)
- ソフト フォントとしてダウンロード
- ドキュメントのオプション
- PostScript オプション
- PostScript 出力オプション:
- 印刷処理が速くなるよう最適化(デフォルト)
- エラーが軽減するよう最適化
- EPS (Encapsulated PostScript)
- アーカイブ形式
- TrueType フォントダウンロードオプション:
- 自動(デフォルト)
- アウトライン
- ビットマップ
- Native TrueType
- PostScript 言語レベル:数値(3:デフォルト)
- PostScript エラーハンドラーを送信:
- はい(デフォルト)、いいえ
- 左右反転印刷:
- はい、いいえ(デフォルト)
- PostScript 出力オプション:
- PostScript オプション
- 用紙/出力
- 印刷の向き:
- 「用紙 / 品質」タブ
- トレイの選択
- 給紙方法:
- 自動選択(デフォルト)
- OnlyOne
- 色:
- 白黒
- カラー(デフォルト)
- 給紙方法:
- トレイの選択
備考
- 印刷時に表示されるダイアログ画面からでも印刷設定(プロパティ)を表示して、変更は出来ます。しかし、その結果はレジストリには反映されません。また「rundll32.exe printui.dll PrintUIEntry」コマンドでのファイル保存も出来ません。
印刷設定の変更はWindowsシステムのコントロールパネル内のデバイス/プリンターから行う必要が有ります。
< TOPへ >