- 題名: 用紙サイズ番号(dmPaperSize)を取得したいのですが
- 日時: 2007/04/21 23:04:57
- ID: 19581
- この記事の返信元:
- (なし)
- この記事への返信:
- [19584] Re[1]: 用紙サイズ番号(dmPaperSize)を取得したいのですが2007/04/23 15:32:36
- ツリーを表示
ユーザー定義の用紙には悩みますよね。 まどかさん同様、私も、決まった名前で登録するのがよいと思います。 あとは、用紙サイズを用途別にデフォルト指定した決まった名前のこの処理専用のプリンタをいくつか作成しておく方法か。
分類:[VB6以前]
アプリケーションからPDFを印刷するプログラムを作成しています。 おおまかな手順は、次の通り。 アプリケーションの印刷設定画面で、 プリンタ,出力する用紙のサイズ,対象PDFを指定 処理 1 デフォルトプリンタを、選択したプリンタに設定 2 デフォルトプリンタの出力用紙サイズを、指定した用紙サイズに設定 3 対象PDFに日付などを書き加えて、用紙サイズにあわせて拡縮した PDFを作成 4 AcrobatReader (Acro32rd.exe)に、/p /h /cjsオプションと、 3で作成してPDFを指定して、起動 Acro32rd.exe /p /h /cjs PrintOut.pdf 出力する用紙サイズは、A1,A2,A3,A4がありますが、 A1だけ印刷できない場合があり、原因を調べました。 処理2で、用紙サイズ番号を指定して、プリンタのデフォルト用紙サイズを 設定しています。 A2 = 66 A3 = 8 A4 = 9 という番号が、C言語のインクルードファイル(WinGDI.h)に定義されています。 (VBの場合は、A3,A4だけが定義されている) A1が何かを調べたところ、用紙サイズ番号は120であることがわかりました。 ★これで、A1に出力できたのですが、 プリンタの削除,追加などを行っていると、 A1に出力されなくなりました。(A4になったり、Acro32rd.exeが落ちたり) この時に、A1の用紙サイズ番号を確認すると131になっていました。 つまり、A1の場合は番号が決まっておらず、プリンタの追加,削除を行うことで 番号が変わるということがわかりました。 WindowsXPのプリンタとFAXの「サーバのプロパティ」 用紙 A2,A3,A4は削除できないのに、 用紙 A1は削除できるようになっていました。 このことからも、A1の用紙サイズ番号は固定ではないと推測しています。 VB6でプログラムを作っていますが、 プログラムの中から、用紙がA1の用紙サイズ番号(dmPaperSize)を 知る方法はないのでしょうか。 ※ プリンタの現在の用紙サイズは取得できるので、 120,131という番号がわかりました。 プリンタの現在の用紙サイズがA1でない場合は、 番号を知ることができません。 ご存知の方がおられたら、教えてください。