VB。网络打印标签

VB. NEt Printing Labels

我制作了一个软件来在 TCS 条码打印机 DA200 机器上打印特定类型的标签 (100x150),当我打印它时,它打印在两页杂乱无章的页面上,大部分文本在第一页上,其余的在第二。我试图更改几乎所有代码,但它不起作用。我想让打印响应并只停留在一页上。

输出代码:

Sub Print()
    TextBox5.Text = ""
    TextBox5.AppendText("Produced By:" + vbTab + vbTab + "Company")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbTab + vbTab + vbTab + "Address")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbTab + vbTab + vbTab + "No. 1")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbTab + vbTab + vbTab + "City")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Product:" + vbTab + vbTab + "SPECIE")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Product Format:" + vbTab + "Fresh Skin OFF Loin")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Grade:" + vbTab + vbTab + vbTab + "GRADE")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Catch Area:" + vbTab + vbTab + "FAO 51")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Storage Instructions:" + vbTab + "0.5º to 1.5º Celcius")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Establishment No.:" + vbTab + "A22.1")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Origin:" + vbTab + vbTab + vbTab + "Origin")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Vessel Name/s:" + vbTab + vbTab + vesselcmb.SelectedItem)
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Product Date:" + vbTab + vbTab + Date.Now.Date)
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Best Before:" + vbTab + vbTab + Date.Now.Date.AddDays(16))
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Project code:" + vbTab + vbTab + voyageprint.Text)
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("Net Weight:" + vbTab + vbTab + "")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbTab + "To be further prepared for consumption")
    TextBox5.AppendText("" + vbNewLine)
    TextBox5.AppendText("" + vbTab + vbTab + "100% Natural")
    '' TextBox5.AppendText(vbTab + vbTab + vbTab + PictureBox1.Text + vbNewLine)
    PrintPreviewDialog1.ShowDialog()

打印文档代码:

Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim printfont As New Font("Arial", 12, FontStyle.Bold)
        Dim SizeP As New PaperSize("Label 100x150", 100, 150)
        e.Graphics.DrawString(TextBox5.Text, printfont, Brushes.Black, 4, 6)
        '' e.Graphics.DrawImage(Me.PictureBox1.Image, 120, 130, PictureBox1.Width - 15, PictureBox1.Height - 25)
    End Sub

打印方式:

考虑将文本转换为图像并将图像打印到打印机。

您可能需要的一些代码:

Private img As Bitmap
Private str As StringBuilder = New StringBuilder
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    str.Append("Produced By:" + vbTab + vbTab + "Company")
    str.Append("" + vbNewLine)
    str.Append("" + vbTab + vbTab + vbTab + "Address")
    str.Append("" + vbNewLine)
    str.Append("" + vbTab + vbTab + vbTab + "No. 1")
    str.Append("" + vbNewLine)
    str.Append("" + vbTab + vbTab + vbTab + "City")
    str.Append("" + vbNewLine)
    str.Append("" + vbNewLine)
    str.Append("Product:" + vbTab + vbTab + "SPECIE")
    str.Append("" + vbNewLine)
    str.Append("Product Format:" + vbTab + "Fresh Skin OFF Loin")
    str.Append("" + vbNewLine)
    str.Append("Grade:" + vbTab + vbTab + vbTab + "GRADE")
    str.Append("" + vbNewLine)
    str.Append("Catch Area:" + vbTab + vbTab + "FAO 51")
    str.Append("" + vbNewLine)
    str.Append("Storage Instructions:" + vbTab + "0.5º to 1.5º Celcius")
    str.Append("" + vbNewLine)
    str.Append("Establishment No.:" + vbTab + "A22.1")
    str.Append("" + vbNewLine)
    str.Append("Origin:" + vbTab + vbTab + vbTab + "Origin")
    str.Append("" + vbNewLine)
    str.Append("Vessel Name/s:" + vbTab + vbTab + "vesselcmb.SelectedItem")
    str.Append("" + vbNewLine)
    str.Append("" + vbNewLine)
    str.Append("" + vbNewLine)
    str.Append("Product Date:" + vbTab + vbTab + Date.Now.Date)
    str.Append("" + vbNewLine)
    str.Append("Best Before:" + vbTab + vbTab + Date.Now.Date.AddDays(16))
    str.Append("" + vbNewLine)
    str.Append("Project code:" + vbTab + vbTab + "voyageprint.Text")
    str.Append("" + vbNewLine)
    str.Append("Net Weight:" + vbTab + vbTab + "")
    str.Append("" + vbNewLine)
    str.Append("" + vbNewLine)
    str.Append("" + vbTab + "To be further prepared for consumption")
    str.Append("" + vbNewLine)
    str.Append("" + vbTab + vbTab + "100% Natural")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    img = ConvertTextToImage(str.ToString, "Arial", 12, Color.White, Color.Black, 840, 1188)
    Dim printDialog1 As PrintDialog = New PrintDialog()
    printDialog1.Document = PrintDocument1
    Dim result As DialogResult = printDialog1.ShowDialog()

    If result = DialogResult.OK Then
        PrintDocument1.Print()
    End If
End Sub
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    e.Graphics.DrawImage(img, e.MarginBounds)
End Sub
Public Function ConvertTextToImage(ByVal txt As String, ByVal fontname As String, ByVal fontsize As Integer, ByVal bgcolor As Color, ByVal fcolor As Color, ByVal width As Integer, ByVal Height As Integer) As Bitmap
    Dim bmp As Bitmap = New Bitmap(width, Height)

    Using graphics As Graphics = Graphics.FromImage(bmp)
        Dim font As Font = New Font(fontname, fontsize)
        graphics.FillRectangle(New SolidBrush(bgcolor), 0, 0, bmp.Width, bmp.Height)
        graphics.DrawString(txt, font, New SolidBrush(fcolor), 0, 0)
        graphics.Flush()
        font.Dispose()
        graphics.Dispose()
    End Using

    Return bmp
End Function

我的测试结果。