2007/12/26(Wed) 22:33:01 編集(投稿者)
■No11955 (西院はサイと読みます さん) に返信
> 現在printdocumentで帳票を作成しています。
> その際問題としてプリンタがつながっていないとプレビューができないことです。
> (正確にはプリンタがつながっていないと用紙サイズの設定がコードでできない)
> 他のサイトでも調べたのですが仮想プリンタのインストールするということですが
> 他の端末で使用の際仮想プリンタのインストールをしなくて良い方法があるのでしょうか
>
> あくまでも根本的な問題は
> PrintDocument1.DefaultPageSettings.PaperSize.Kind = Printing.PaperKind.A3
> とすると「プロパティ 'Kind' は 'ReadOnly' です。」のエラーを回避したいのです。
>
> なにか良い方法があれば教えて下さい。
>
もしも、A3用紙の大きさでPrintDocumentへ描くプログラムができるのであれば、プレビューを自作する方法
もできると思います。VS2005で作成されたドローツール風の印刷ソフトなどを最近見かけます。
これは、用紙の大きさを選ぶと画面に合わせた比率で用紙サイズができて、用紙上に載せた図形や文字が動かせるしくみのようです。Graphicオブジェクトに描く要領は同じなのでこんなのができるのではないか?
エラー自体は
If PaperSize=False then
For Each psize As Printing.PaperSize In PrintDocument1.PrinterSettings.PaperSizes
'指定の用紙サイズがサポートされているか(A3の縦横のピクセルなどの取得した合計など)
If (psize.Width + psize.Height) = 2823 Then
'指定の用紙サイズがあれば用紙サイズを設定する
e.PageSettings.PaperSize = psize
PaperSizeSet = True '設定OKだった場合の処理など
Exit For
Else
End If
Next
End if
If PaperSizeSet = False Then
MessageBox.Show("設定の用紙サイズを印刷する事ができません。", "!", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.PrintPreviewDialog1.Close()
e.Cancel = True
End If