tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルPrintDocument−改頁について
記事No1239
投稿日: 2004/12/28(Tue) 14:59
投稿者バカでごめん
[OSのVer]:Windows    [VBのVer]:VB.NET

汎用系プログラムから、VB.NETを勉強中の超初心者です。
今頭を悩ましているのが改頁の仕方がわからない事です。
Helpや、ネットで調べてみたりしたのですが、改頁する方法がわかりません。
CrystalReportsやサードパーティを使用せずにPrintDocumentで改頁したいのです。
どなたか、ご教授のほどよろしくお願い致します。

[ツリー表示へ]
タイトルRe: PrintDocument−改頁について
記事No1240
投稿日: 2004/12/28(Tue) 16:40
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
こんにちは、じゃんぬねっと です。

> 今頭を悩ましているのが改頁の仕方がわからない事です。
> Helpや、ネットで調べてみたりしたのですが、改頁する方法がわかりません。
> CrystalReportsやサードパーティを使用せずにPrintDocumentで改頁したいのです。
> どなたか、ご教授のほどよろしくお願い致します。

当然 MSDN であるココも検索したのですね?
hhttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawingprintingprintpageeventargsclasshasmorepagestopic.asp

 HasMorePage = True だけでは?

[ツリー表示へ]
タイトルRe^2: PrintDocument−改頁について
記事No1241
投稿日: 2004/12/28(Tue) 16:51
投稿者バカでごめん
早速の解答ありがとうございます。自分が現在作成している
プログラムですが・・
for I = 1 to 50
 prn_cnt = prn_cnt+1
'改頁チェック
if (prn_cnt >= 10) then
   '改ページ命令※1
  prn_cnt = 0
endif
'印字データ出力命令
e.Graphics.DrawString(・・・
※2
next i

テストで※1の箇所にHasMorePage = Trueを書き
※2の箇所にHasMorePage = Falseを書きましたが
改頁されませんでした。色々サイトや本を参考にして
調べていますが、一度関数を抜けないと改頁されないと・・
今それ以外で本当に方法が無いか調べている状況です。

お手数掛けますが、何か良い方法があればご教授のほど
よろしくお願い致します。

[ツリー表示へ]
タイトルRe^3: PrintDocument−改頁について
記事No1244
投稿日: 2004/12/29(Wed) 18:22
投稿者花ちゃん
一応下記のような設定で複数ページを印刷できますが?。

    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) Handles Button1.Click
        PrintPreviewDialog1.Document = PrintDocument1
        PrintPreviewDialog1.ShowDialog()
    End Sub

    Private prpg As Integer
    Private count As Integer
    Private pgMax As Integer = 50

    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, _
                            ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
                            Handles PrintDocument1.PrintPage
        Dim g As Graphics = e.Graphics
        Dim i As Integer
        g.PageUnit = GraphicsUnit.Millimeter
        Select Case prpg
            Case 0
                For i = 1 To 10
                    g.DrawString("あいうえお", _
                        New Font("MS Pゴシック", 12), Brushes.Black, 20, i * 10)
                    count += 1
                Next i
                e.HasMorePages = True
            Case 1
                e.HasMorePages = False
                For i = 1 To pgMax - count
                    g.DrawString("かきくけこ", _
                        New Font("MS Pゴシック", 12), Brushes.Black, 20, i * 10)
                Next i
        End Select
        If ((pgMax - count) / 10) > 1 Then
            prpg = 0
        Else
            prpg = 1
        End If
    End Sub

[ツリー表示へ]
タイトルRe^4: PrintDocument−改頁について
記事No1245
投稿日: 2004/12/29(Wed) 19:50
投稿者バカでごめん
回答ありがとうございます。早速やってみます。
じゃねっとさん、花ちゃんさんありがとうございました。
又何かありましたらよろしくお願いします。
失礼しました。

[ツリー表示へ]