架空の映画のネタバレレビュー

【状況説明】
WindowsXP、VB2005EE Access2003 でWindowsアプリケーションを開発中です。
開発したソフトに長形3号封筒の宛名印刷の機能を盛り込みたく、縦型印字や郵便
番号印字位置調整などの設定も出来て正常に動作できています。ところが印刷は
全てプリンター下部(カセット)より給紙されるために、その都度普通紙を取り外し
封筒をセットする面倒な操作をしています。

Canonのプリンターにはの上部(オートシートフィーダ)から給紙しすることが可能で、
印刷設定の給紙方法には以下の項目がありますが、そのプログラムによる設定方法
がわかりません。
・給紙切替ボタンに従う
・オートシトフィーダ
・カセット
・用紙なし時に自動切換え
・用紙割り当てに従う
【質問内容】
上記の設定を「オートシトフィーダ(又は給紙切替ボタンに従う)」にプログラムから設定
したいのですが、よろしくお願いいたします。

A 回答 (2件)

> Public Property PageSource as PageSource


といった使い方ではなくて 印刷するPrintDocuemntクラスのオブジェクトがあなたのプログラム中にあると思います

このドキュメントのDefaultPageSettings.PaperSourceに対して
ドキュメントに設定されたPrinterSettings.PaperSourcesのどれかを設定するといった記述が必要です

--- MSDN より引用 ---
' コンボボックスの選択がある場合
If comboPaperSource.SelectedIndex <> -1 Then
  ' 印刷ドキュメントのPageSettings.PaperSourceを変更
printDoc.DefaultPageSettings.PaperSource = _
    printDoc.PrinterSettings.PaperSources.Item(comboPaperSource.SelectedIndex)
    ' 印刷ドキュメントのプリンタ設定の給紙装置を選択
  End If
------------------------
    • good
    • 0
この回答へのお礼

redfox63さん、ありがとうございました。
おかげさまで正常に動作することが出来、大変助かりました。私の場合次のようにインスタンスしていました。
Dim pd As New System.Drawing.Printing.PrintDocument '--PrintDocumentオブジェクトの作成

次のように記述して、comboPaperSource.SelectedIndexは適当に0~3を設定してオートシートフィーダは
1であることが知りました。
pd.DefaultPageSettings.PaperSource = pd.PrinterSettings.PaperSources.Item(1)

まだまだ基本的なことが解らず、これからも勉強いたします。本当に助かりました。ありがとうございました。

お礼日時:2008/12/22 16:36

まり詳しくないんですが PriterSettingsのPaperSourcesでプリンターの給紙方法が取得出来るようです


PageSettings.PaperSourceにどこから給紙するのかを設定すればいいようですよ

MSDNのPrinterSettings.PaperSourcesやPageSettings.PaperSourceなどを参照してみてください
http://msdn.microsoft.com/ja-jp/library/system.d …
http://msdn.microsoft.com/ja-jp/library/system.d …
    • good
    • 0
この回答へのお礼

redfox63さん、早速の回答ありがとうございました。
指摘されたMSDNのサイトをみて早速試してみました。だか経験が浅いためにサイトに記されております
次の設定はどの位置にどのようにして設定すればよいのか解らず困っています。
>Visual Basic (宣言)
>Public Property PaperSource As PaperSource
この宣言をしないと例文の"PageSettings"に次のようなエラーが表示されます。
「名前 'PaperSource'は宣言されていません」
以上よろしくご指導下さい。

お礼日時:2008/12/22 14:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報