掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
印刷ページの中でフォントを変えるには? (ID:145599)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> の様にブラシとフォントを作っておいて 作成したオブジェクトは、使用後に必ず「Dispose メソッド」で破棄してください。 破棄しない場合、ガベージコレクトされるまでオブジェクトが解放されないため、リソースを圧迫してしまいます。 > フォントの変え方を教えて下さい。 ん? ブラシと大差ないと思いますけれども。 f.Dispose() '以前のフォントを破棄 f = New Font(〜〜) '新たなフォントを割り当て ですよね。 > Private Sub Button_Click() > b.Color=Color.Black:x=100:y=100:PrintDocument1.Print() > b.Color=Color.Red:x=300:y=300:PrintDocument1.Print() > End Sub PrintDocument の Print メソッドは「印刷開始」の指示なので、 一度しか呼びません。 今回指示したいのは、「文字列の描画」の方ですから、2 度呼ぶのは Graphics.DrawStrings (VB6 でいうところの Printer.Print) の方です。 .NET の PrintPage イベントは、印刷するページ数分だけ発生します。 # 2 ページ以上の印刷をする場合は、PrintPage イベント内で、 # 「まだ次のページの印刷データがあるよ」と教えるために、 # e.HasMorePage を True に設定します(最終ページでは False にする) 今回の場合、1 ページ内に複数のフォントを使いたいだけなので、 ひとつの PrintPage イベント内にて Sub PrintDocument1_PrintPage(…) '郵便番号 e.Graphics.DrawStrings(ZipString, ZipFont, ZipBrush, ZipX, ZipY) '住所 e.Graphics.DrawStrings(AddressString, AddressFont, AddressBrush, AddressX, AddressY) End Sub のように書けば OK です。 ついでに、複数ページへの出力の場合についても。 # VB6 の方が理解が早いようなので、VB6 側の方から話をしていきます。 VB6 の印刷処理(Print オブジェクト)は、イベントを持っていませんよね。 たとえば、3ページ印刷するためのコードとして、 Sub Command1_Click() Printer.Font.Size = 15 Printer.Print "1ページ目" Printer.NewPage Printer.Font.Size = 12 Printer.Print "2ページ目" Printer.NewPage Printer.Font.Size = 9 Printer.Print "3ページ目" Printer.EndDoc End Sub のような処理があったのであれば、それを見直して、 Sub Command1_Click() Call 印刷処理の1ページ目 Call 印刷処理の2ページ目 Call 印刷処理の3ページ目 Call Printer.EndDoc End Sub あるいは、 Sub Command1_Click() For page = 1 To 3 Call 印刷処理(page) '★描画処理の本体★ Next Call Printer.EndDoc() End Sub というコードに置き換えてみてください。 それができれば、修正後のコードを .NET に置き換えるのも容易なハズです。 '---- .NET 版 ---- Private currentPageNumber As Integer = 0 Sub Button1_Click(…) currentPageNumber = 0 PrintDocument1.Print() '印刷処理を実行 End Sub Sub PrintDocument1_PrintPage(…) currentPageNumber += 1 Call 印刷処理(currentPageNumber) '★描画処理の本体★ If currentPageNumber = 3 Then e.HasMorePages = False currentPageNumber = 0 Else e.HasMorePages = True End If End Sub
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.