0

たとえば、次の例のように1つのラベルを印刷しますが、3部作成する場合、印刷するラベルのどこかにコピー番号を印刷するにはどうすればよいですか。

サンプルコード:

Private Sub btnPrintProcLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintProcLabel.Click
        If ValidateData() Then
            AddHandler PrintDocument1.PrintPage, AddressOf PrintProcLabel

            Try
                PrintDocument1.PrinterSettings.PrinterName = SinglePrinter.PrinterSettings.PrinterName
                PrintDocument1.PrinterSettings.Copies = CInt(txtCopies.Text)
                PrintDocument1.Print()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If
    End Sub

Public Sub PrintProcLabel(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
        Dim g As Graphics = e.Graphics
        Dim br As Brush = New SolidBrush(Color.Black)
        Dim pn As Pen = New Pen(br)

        g.DrawString(Today.Month & "/" & Today.Day & "/" & Today.Year, Arial, br, 250, 3)

End Sub
4

1 に答える 1

1
   PrintDocument1.PrinterSettings.Copies = CInt(txtCopies.Text)

これにより、プリンタドライバにコピーを生成するように指示され、それらはすべて同一になります。それらに番号を付けたい場合は、自分で「コピー」を作成する必要があります。それらはすべてわずかに異なるため、実際にはもうコピーではありません。PrintPageイベントハンドラーでDrawString()の値を持つカウンターを使用して、Print()メソッドを繰り返し呼び出すだけです。

于 2013-02-01T15:17:47.250 に答える