(※ 2014 年 12 月 26 日に Japan WDK Support Blogに公開した情報のアーカイブです。)
皆様、お久しぶりです!
WDK サポートチームのI沢(アイザワ)でございます。
2014 年ももうすぐ終わろうとしておりますが、皆様いかがお過ごしでしょうか。
年末と言えば年賀状。年賀状と言えばプリンタ。プリンタと言えばドライバですね!
今回は、そんなプリンタドライバに関するお話でございます。
以前、A 尾さんのエントリ 「プリンタドライバ、スプーラコンポーネントのWDKサンプル」 にて
"bitmap レンダリングプラグイン"
をご紹介されておりましたが、なんとこちらのプラグインを使用することでプリンタが無くても、印刷結果を紙の代わりに画像ファイルとして出力することができます!
本プラグインは UNIDRV のプラグインとなっておりますので、開発している UNIDRV
のプラグインの参考として利用できます。
また、印刷結果が意図しない結果となった場合などに、自身が作成したドライバーに依存した問題か、それとも他のドライバーでも現象が再現するものかなど、原因の切り分けにも活用できるので、私共も非常によく使用するサンプルでございます。
今回はそんな便利なプラグインのビルド方法から、印刷結果を確認するところまでご案内いたしますのでお付き合いいただけますと幸いです。
サンプルのビルド
まずはサンプルのダウンロードからビルドまで手順をご説明いたします。
ビルドはインストール先のターゲットマシンを 32bit 版 Windows 8.1
と想定してビルドします。
1. サンプルをダウンロード
以下の URL からサンプルをダウンロードして適当な場所に解凍します。ここでは、"C:\OEM Printer Customization Plug-in Samples"
に解凍したものとして進めます。
OEM Printer Customization Plug-in Samples
https://code.msdn.microsoft.com/OEMDLL-Samples-71364d95
2. ソリューションファイルを開く
ソリューションファイルを Visual Studio で開きます。ソリューションファイルは以下のパスに格納されています。
C:\OEM Printer Customization Plug-in Samples\C++\oemdll.sln
3. プロジェクトのランタイムライブラリの設定を変更する
ビルドしたい構成のランタイムライブラリの設定を "マルチスレッド デバッグ (/MTd)"
に設定します。
もちろんランタイムライブラリを予めターゲットマシンにインストールしていただければ、"マルチスレッド デバッグ
DLL (/MDd)" もしくは "マルチスレッド DLL (/MD)"
設定でも動作いたしますので、お好みの方法を選択してください。
ここでは汎用的なサンプルのご案内ということで、できるだけ動作環境に依存しない設定方法で進めていきたいと思います。
ちなみに、ランタイムライブラリは Visual C++ 再頒布可能パッケージに含まれておりますので、ご使用の Visual Studio
のバージョンに合わせて適宜ご利用ください。
ご参考までとはなりますが、Visual Studio 2013 の Visual C++
再頒布可能パッケージは以下の URL からダウンロード可能です。
Visual Studio 2013 の Visual C++
再頒布可能パッケージ
http://www.microsoft.com/ja-jp/download/details.aspx?id=40784
3. ソースコードをビルドする
ビルドしたいソリューション構成、CPU アーキテクチャに設定されていることであること確認してソリューションのビルドを行ってください。bitmap
プロジェクトのみのビルドでも問題ありません。
ここでは、ソリューション構成を "Win8.1 Debug"、CPU
アーキテクチャを "Win32" としてビルドいたします。
4. インストールに必要なファイルをターゲットマシンにコピーする
必要なファイルは以下の 4 つのファイルとなります。
C:\OEM Printer Customization Plug-in Samples\C++
|- bitmap.inf
|- bitmap.ini
|- bitmap.gpd
|- Win8.1Debug (もしくはWin8.1Release)
|- bitmap.dll
|
上記 4 つのファイルを bitmap.inf の記述に合わせて以下のようなフォルダ構成にして、ターゲットマシンにコピーいたします。
”Win8.1Debug” というフォルダを “bitmap” という名前のフォルダに変更して “x86” というフォルダに “bitmap.dll” を格納しておりますのでご注意ください。ターゲットマシン上のコピー先のフォルダは「C:\BitmapPlugin」としています。
C:\BitmapPlugin
|- bitmap.inf
|- bitmap.ini
|- bitmap.gpd
|- bitmap
|- x86
|- bitmap.dll
|
プラグインのインストール
それではターゲットマシン上でプラグインをインストールしてみましょう。ターゲットマシンは 32bit 版 Windows 8.1
です。
1. [コントロールパネル] から [デバイスとプリンタの表示]
を選択
2. [デバイスとプリンター] から [プリンターの追加]
を選択
3. [プリンターの追加] から [探しているプリンターはこの一覧にはありません]
を選択
4. [ローカル プリンターまたはネットワーク プリンタを手動設定で追加する(O)]
を選択して、[次へ(N)]
をクリック
5. [既存のポートを使用(U):]
を選択し、ポートには [FILE: (ファイルへ出力)]
を設定
6. インストールする対象を聞かれるので、[ディスク使用(H)…]
をクリック
7. ファイルの場所を聞かれるので、"C:\BitmapPlugin\bitmap"
を指定
