DOBON.NET DOBON.NETプログラミング掲示板過去ログ

プリンタ選択ダイアログのページ指定印刷について

分類:[.NET]

VB.NETについての質問です。

プリンタ選択ダイアログでページを指定して印刷をしたいのですが、

.NET Tipsの
「プリンタ選択ダイアログを表示して印刷する」
「文字列を印刷する」

を参考に、以下のソースを書いてみたのですが、
(複数ページ印刷を行いたいため、TextBoxをRichTextBoxに変更しました)
ページを指定しても全ページがプリントアウトされてしまいます。
指定したページだけをプリントアウトするには、どうしたらいいのでしょうか?

PrintDialogのAllowSomePagesはTrueにして、ページ選択できるようにしてあります。
また、印刷範囲の始ページ・終ページの設定を行いたいのですが、
終ページの設定値を、印刷した場合のページ数にするにはどうしたらよいでしょうか?
PrintDialog.PrinterSettings.FromPage = 1
PrintDialog.PrinterSettings.ToPage = ■

> 管理人さん
No1405の投稿で、部数指定印刷を行うには特別な記述は必要ない事を教えていただきましたが、
ページ指定印刷も特別な記述は必要なく、できるものなのでしょうか?

-------------------------------------------------------------
Dim printingText As String
Dim printingPosition As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'印刷する文字列と位置を設定する
printingText = RichTextBox1.Text
printingPosition = 0
'PrintDocumentオブジェクトの作成
Dim pd As New System.Drawing.Printing.PrintDocument()
'PrintPageイベントハンドラの追加
AddHandler pd.PrintPage, AddressOf pd_PrintPage
'PrintDialogクラスの作成
Dim pdlg As New PrintDialog()
'PrintDocumentを指定
pdlg.Document = pd

'* 次の3行が追加した行です
pdlg.AllowSomePages = True
'pdlg.PrinterSettings.FromPage = 1
'pdlg.PrinterSettings.ToPage = ■

'印刷の選択ダイアログを表示する
If pdlg.ShowDialog() = DialogResult.OK Then
'OKがクリックされた時は印刷する
pd.Print()
End If
End Sub
■No1505に返信(のぶさんの記事)
>>管理人さん
> No1405の投稿で、部数指定印刷を行うには特別な記述は必要ない事を教えていただきましたが、
> ページ指定印刷も特別な記述は必要なく、できるものなのでしょうか?

ページ指定印刷の場合は、ヘルプを読むと、自分で実装する必要がありそうですね。(「印刷プロセス中に、 PrintDocument.PrintPage イベントで、 PrintRange を確認して印刷対象を調べます。」云々とあります。)
■No1553に返信(管理人さんの記事)

管理人さん、いつもご回答ありがとうございます。

> ページ指定印刷の場合は、ヘルプを読むと、自分で実装する必要がありそうですね。(「印刷プロセス中に、 PrintDocument.PrintPage イベントで、 PrintRange を確認して印刷対象を調べます。」云々とあります。)

分かりました。やってみます。

DOBON.NET | プログラミング道 | プログラミング掲示板