【发布时间】:2021-07-05 11:23:11
【问题描述】:
我制作了一个软件,用于在 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
【问题讨论】:
-
那是疯狂的糟糕代码。当您可以将代码以在
PrintPage事件处理程序中完全按照您想要的位置和位置绘制文本的每个部分时,为什么要将所有文本放入TextBox?摆脱第一种方法,将所有逻辑放在PrintPage事件处理程序中,包括所需数量的DrawString调用。 -
我该怎么做?评论一个我必须如何做到这一点的例子,我已经很久没有使用VB了。网。
-
您已经很久没有使用 VB.NET 了,这并不意味着您必须坐下来让其他人为您编写代码。这意味着您必须付出更多而不是更少的努力才能完成您需要做的事情。努力学习你需要做什么,努力去做,然后,如果它不起作用,你有一个问题要问。 “我不知道怎么做,也懒得去发现,所以你这样做”不是 SO 的工作原理。
-
谢谢,但这个意见还不够好。我在 StackOverFlow 上问这个问题的简单事实意味着我尽了最大的努力来解决这个案例,因为我使用我的知识库和研究能够编写上面的代码,至少我设法得到了一个结果。我只是问你一个继续的基础,以防万一我不知道我会用你给我的基础做更多的研究,这样我才能得到最终的结果。你不需要给我写所有的代码,只写我能用的base就行了。
-
除了不好的方法,应该仍然有效。但是,从您的图像来看,与打印相比,第一个标签的顶部的确切位置并不是那么清楚。您是否检查过打印机上的打印设置、介质设置、校准等,以确保没有超出上边距?如果打印的顶部位于预期的位置,那么对我来说,当前格式/布局中的页面看起来太多了
标签: vb.net visual-studio printing label