RichTextBoxの内容をA4の部分的範囲に印刷

タグの編集
投稿者 kumasuzumusi  (社会人) 投稿日時 2010/8/6 19:07:01
 はじめまして。TextBoxの内容を印刷する方法では大変参考になりました。一方、RichTextBoxの内容の印刷方法については、microsoftのサイトにその方法が記載されています。しかし、これを利用するとA4全面に印刷することになり部分範囲を指定して印刷することが出来ないようです。私は、上半分はTextBoxの内容をe.Graphics.DrawStringで記載し、下半分にはRichTextBoxの内容を印刷したいのです。
 これは可能なのでしょうか。ご教授下さい。
投稿者 (削除されました)  () 投稿日時 2010/8/6 20:40:33
(削除されました)
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/8/6 20:45:02
> microsoftのサイトにその方法が記載されています。
どの URL を参考にされたのか、具体的に記述された方が良いですよ。
内容からすると、下記のページでしょうか?
http://support.microsoft.com/kb/811401/

> 私は、上半分はTextBoxの内容をe.Graphics.DrawStringで記載し、
> 下半分にはRichTextBoxの内容を印刷したいのです。
上記の URL だと仮定すると、このように書けます。

「下半分にRichTextBoxの内容を印刷」してみました。
(上半分のTextBox部や、ページ番号の表記などは省略しています)

Private Sub PrintDocument1_PrintPage(ByVal sender As Object, _
    ByVal e As System.Drawing.Printing.PrintPageEventArgs _
    ) Handles PrintDocument1.PrintPage

    Dim mb As New Rectangle( _
        e.MarginBounds.X, _
        e.MarginBounds.Y + e.MarginBounds.Height \ 2, _
        e.MarginBounds.Width, _
        e.MarginBounds.Height \ 2)
    Dim pb As New Rectangle( _
        e.PageBounds.X, _
        e.PageBounds.Y + e.PageBounds.Height \ 2, _
        e.PageBounds.Width, _
        e.PageBounds.Height \ 2)


    Dim eg As New System.Drawing.Printing.PrintPageEventArgs( _
        e.Graphics, mb, pb, e.PageSettings)

    checkPrint = RichTextBoxPrintCtrl1.Print(checkPrint, _
        RichTextBoxPrintCtrl1.TextLength, eg)

    If checkPrint < RichTextBoxPrintCtrl1.TextLength Then
        e.HasMorePages = True
    Else
        e.HasMorePages = False
    End If
End Sub


> TextBoxの内容を印刷する方法では大変参考になりました。
以前に質問された方でしょうか?
(投稿者「kumasuzumusi」で検索しましたが、該当する投稿は見つかりませんでした)

> はじめまして。
あれ? という事は初投稿なのでしょうか?
投稿者 kumasuzumusi  (社会人) 投稿日時 2010/8/6 23:17:45
>> microsoftのサイトにその方法が記載されています。
>どの URL を参考にされたのか、具体的に記述された方が良いですよ。
>内容からすると、下記のページでしょうか?
>http://support.microsoft.com/kb/811401/
そうです。

>上記の URL だと仮定すると、このように書けます。
うわっ。もう!
なるほど、これならうまく行きそうな気がします。
試してみるのは週明けになります。
有難うございます。

>> はじめまして。
>あれ? という事は初投稿なのでしょうか?
そうです。初めてです。
この質問をするのも、ドキドキでした。
回答を見ると、いつも上級者の方の発想に感心してしまいます。eの部分を拡張・定義するとは!
本当に、これで数週間の悩みが解決します。有難うございます。