2009-06-08 16 views

答えて

6

PrintFormコンポーネントを使用する必要があります。 How to: Print a Form by Using the PrintForm Componentを参照してください。

のPrintFormコンポーネントはすぐにそれがのPrintDocument コンポーネントを使用せずに画面 に表示されているとおりの形 の画像を印刷 することができます。以下の手順 は、フォームをプリンタに印刷する方法、 を印刷プレビューウィンドウ、 カプセル化PostScriptファイルに示します。

0

実際にフォームのスナップショットが必要な場合は、画面キャプチャをシミュレートする必要があります。助けてくれるsampleがあります。しかし、それはかなり醜いので、PDFまたはレポートビルダーを使用してレポートを作成することを検討するとよいでしょう。

+0

は、新しいコンポーネントをtheresの。 –

+0

うわー、分かりませんでした。クール、tnx。 :) – jvenema

3

次のコードは、ビットマップをキャプチャし、(ボタン1クリックで)プリンタに送信します画像を修正したい場合は

Imports System.Drawing.Printing 

Public Class Form1 

Dim WithEvents mPrintDocument As New PrintDocument 
Dim mPrintBitMap As Bitmap 


Private Sub m_PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles mPrintDocument.PrintPage 
    ' Draw the image centered. 
    Dim lWidth As Integer = e.MarginBounds.X + (e.MarginBounds.Width - mPrintBitMap.Width) \ 2 
    Dim lHeight As Integer = e.MarginBounds.Y + (e.MarginBounds.Height - mPrintBitMap.Height) \ 2 
    e.Graphics.DrawImage(mPrintBitMap, lWidth, lheight) 

    ' There's only one page. 
    e.HasMorePages = False 
End Sub 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    ' Copy the form's image into a bitmap. 
    mPrintBitMap = New Bitmap(Me.Width, Me.Width) 
    Dim lRect As System.Drawing.Rectangle 
    lRect.Width = Me.Width 
    lRect.Height = Me.Width 
    Me.DrawToBitmap(mPrintBitMap, lRect) 


    ' Make a PrintDocument and print. 
    mPrintDocument = New PrintDocument 
    mPrintDocument.Print() 
End Sub 
End Class 
+0

これはいいですが、用紙サイズを考慮していません。 – jcaruso

関連する問題