tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルページ設定ダイアログを使わずに
記事No2674
投稿日: 2005/11/29(Tue) 17:13
投稿者Nおう
[OSのVer]:Windows2000  [VBのVer]:VB.NET2003  

こんにちわ。色々と参考にさせて頂いてます。

ドットインパクトプリンタに印刷するプログラムを作成しております。
用紙は、ユーザ定義のサイズ(連続用紙)を使用しています。

 印刷指示をした時に、プログラムから用紙サイズを選択させているのですが、
違う用紙サイズで印刷をしようとしてしまいます。
("A3"に印刷しようとしているようで、用紙サイズエラーが起きます)
 なので、途中に"ページ設定ダイアログ"を使用してみたのですが、
そこで使用したい用紙サイズを指定すると、印刷は成功します。
(用紙の初期値として"A3"が選択されていました)
 ページ設定ダイアログを使わずにページ設定を反映させる
方法はありますでしょうか?御教授お願いします。

*以下、私が書いたコードです。
Friend PageSetting As New PageSettings

Dim SrcIdx as Integer
Dim SizIdx as Integer

'使用するプリンタ
PageSetting.PrinterSettings.PrinterName = "プリンタ名"
'給紙方法の設定
PageSetting.PaperSource = PageSetting.PrinterSettings.PaperSources.Item(SrcIdx)
'用紙設定
PageSetting.PaperSize = PageSetting.PrinterSettings.PaperSizes.Item(SizIdx)

PrDoc01.DefaultPageSettings = PageSetting

'============ページ設定ダイアログを使用
Dim PD As New PageSetupDialog
PD.Document = PrDoc01
PD.ShowDialog()
'====================================

If MsgBox("印刷を開始しますか?", MsgBoxStyle.YesNo, "確認") = MsgBoxResult.No Then
・・・以降、印刷処理・・・

[ツリー表示へ]
タイトルRe: ページ設定ダイアログを使わずに
記事No2675
投稿日: 2005/11/29(Tue) 17:22
投稿者花ちゃん
ここの印刷関係の[用紙サイズの取得及び設定・印刷部数・印刷方向の設定]では
だめだったのでしょうか?

[ツリー表示へ]
タイトルRe^2: ページ設定ダイアログを使わずに
記事No2677
投稿日: 2005/11/29(Tue) 18:06
投稿者Nおう
花ちゃん 様、早速の書込みありがとうございます。

> ここの印刷関係の[用紙サイズの取得及び設定・印刷部数・印刷方向の設定]では
> だめだったのでしょうか?

 前述したコードの中に、変数"SizIdx"というのがありますが、
この値は"用紙サイズコレクション"のINDEX値になります。
このINDEX値は、
 1.別のプログラム上にて、ご提示のあった処理(用紙サイズの取得及び設定)と、
  同様の処理(コンストラクタ?)を行い取得
 2.INIファイルに書込み
 3.印刷プログラムの起動時にINIファイルから読込み
と、いうような流れで取得しています。それを用いて印刷時に用紙ザイズを指定しています。

ご提示のあった処理については、使っているような、使っていないような・・・
という状況でしょうか・・・。
印刷時に直接コンストラクタを呼び出さないとダメなのでしょうか?

[ツリー表示へ]
タイトルRe^3: ページ設定ダイアログを使わずに
記事No2678
投稿日: 2005/11/29(Tue) 18:29
投稿者花ちゃん
> > ここの印刷関係の[用紙サイズの取得及び設定・印刷部数・印刷方向の設定]では
> > だめだったのでしょうか?

結局上記ではだめなのですか?


> 印刷時に直接コンストラクタを呼び出さないとダメなのでしょうか?
ダメかどうかなら試して見れば判るのでは。

[ツリー表示へ]