tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルページ替えさせないように印刷する方法を教えてください。
記事No7881
投稿日: 2008/07/29(Tue) 19:44
投稿者Aco
お世話様になります。

ダンボ様に教えていただき、1回目の難問は突破出来たのですが、1枚の用紙に3カ所の印刷をするプログラムを書きたいのですが、3カ所の縦横の位置とデータを変えるだけで印刷方法のコードは同じですので以下のようにしたのですが、
第1面を印刷すると次の用紙が送られ、第2面、第3面も同じくページ換えをしてしまい、1枚の用紙に3カ所の印刷が出来ません。


    Private Sub Insatu()

        '第1面
        Sagyo = Num_1
        Yoko = 10
        Tate = 95
        PrintDocument1.Print() ’ここでページ替えされてしまいます。

        '第2面
        Sagyo = Num_2
        Yoko = 10
        Tate = 180
        PrintDocument1.Print() ’ここでページ替えされてしまいます。



        '第3面
        Sagyo = Num_3
        Yoko = 10
        Tate = 275
        PrintDocument1.Print() ’ここでページ替えされてしまいます。


    End Sub


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

    e.Graphics.DrawString(Sagyo, New Font("Arial", 8, FontStyle.Regular), Black, Yoko, Tate)

    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Tenki()
        Insatu()

    End Sub


『PrintDocument1_PrintPage』の処理は、本当はとても複雑にしてありますので別の独立した『Subプロシージャ』にしたいのです。

本当に何度もお世話かけて申し訳ありませんがよろしくお願いします。

[ツリー表示へ]
タイトルRe: ページ替えさせないように印刷する方法を教えてください。
記事No7883
投稿日: 2008/07/30(Wed) 02:27
投稿者花ちゃん
>         PrintDocument1.Print() ’ここでページ替えされてしまいます。

これは何をしているのかを理解していますか?
ここの[印刷関係]のTips と見比べて見て下さい。

[ツリー表示へ]
タイトルRe^2: ページ替えさせないように印刷する方法を教えてください。
記事No7886
投稿日: 2008/07/30(Wed) 10:03
投稿者Aco
> >         PrintDocument1.Print() ’ここでページ替えされてしまいます。
>
> これは何をしているのかを理解していますか?
> ここの[印刷関係]のTips と見比べて見て下さい。


お世話かけます。

ハイ、実は『複数のページに渡ってテキストを印刷する』を参考にさせていただいて、
以下のようにやってみたのですがうまくいかなっかたのです。

Public Class Form1

    Dim Sagyo As Long
     ・
     ・
     ・

    Dim Kaipage As Integer


    Private Sub Insatu()


        '第1面
        Kaipage = 0  '改ページさせない
        Sagyo = Num_1
        Yoko = 100
        Tate = 30
        PrintDocument1.Print()


        '第2面
        Kaipage = 0 '改ページさせない
        Sagyo = Num_2
        Yoko = 100
        Tate = 60
        'PrintDocument1.Print()


        '第3面
        Kaipage = 1 '改ページする
        Sagyo = Num_3
        Yoko = 100
        Tate = 90
        PrintDocument1.Print()

    End Sub



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

        e.Graphics.DrawString(Sagyo, New Font("Arial", 8, FontStyle.Regular), Brushes.Black, Yoko, Tate)

        If Kaipage = 1 Then
            e.HasMorePages = False '改ページする
        ElseIf Kaipage = 0 Then
            e.HasMorePages = True '改ページしない
        End If

    End Sub


End Class


VB2008 を使用して、OSは Vista です。

よろしくお願いします。

[ツリー表示へ]
タイトルRe^3: ページ替えさせないように印刷する方法を教えてください。
記事No7889
投稿日: 2008/07/30(Wed) 10:53
投稿者ダンボ
>         '第1面
>         Kaipage = 0  '改ページさせない
>         PrintDocument1.Print()

困りましたね。どう答えるべきか。
「PrintDocumentオブジェクト」について勉強しなさい
「PrintDocument1.Print」というキーワードでgoogle検索する

[ツリー表示へ]
タイトルRe^4: ページ替えさせないように印刷する方法を教えてください。
記事No7896
投稿日: 2008/08/01(Fri) 07:55
投稿者ダンボ
> 「PrintDocumentオブジェクト」について勉強しなさい
> 「PrintDocument1.Print」というキーワードでgoogle検索する

http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=1910
まず、ここを読んでから、

http://www.atmarkit.co.jp/fdotnet/dotnettips/397printmoredoc/printmoredoc.html
このページとその前後もいいと思いますが

[ツリー表示へ]
タイトルRe^5: ページ替えさせないように印刷する方法を教えてください。
記事No7897
投稿日: 2008/08/01(Fri) 09:19
投稿者Aco
> > 「PrintDocumentオブジェクト」について勉強しなさい
> > 「PrintDocument1.Print」というキーワードでgoogle検索する
>
> http://www.atmarkit.co.jp/fdotnet/dotnettips/397printmoredoc/printmoredoc.html
>
> このページとその前後なんかいいと思いますが

ダンボ様、いつもありがとうございます。

今度はじっくり頭を使ってやってみます!

[ツリー表示へ]