已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
3天前关闭。
Improve this question
我用Winforms应用程序中输入的值创建了一个条形码,并用打印机打印。之后,当我想用条形码阅读器扫描它时,我无法扫描它。这是我的代码:
private void GenerateBarcodeButton_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(textBox1.Text))
{
pictureBox1.Image = Zen.Barcode.BarcodeDrawFactory.Code128WithChecksum.Draw(textBox1.Text, 50, 2);
}
else
{
MessageBox.Show("Please enter the barcode number you want to generate.");
}
}
public void PrintPicture(object sender, PrintPageEventArgs e)
{
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
// bmp.SetResolution(203, 203);
pictureBox1.DrawToBitmap(bmp, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
e.Graphics.DrawImage(bmp, 20, 20, new System.Drawing.RectangleF(0, 0, bmp.Width, bmp.Height), System.Drawing.GraphicsUnit.Pixel);
}
private void Print_Click(object sender, EventArgs e)
{
PrintDialog pd = new PrintDialog();
PrintDocument pDoc = new PrintDocument();
pDoc.PrintPage += PrintPicture;
pd.Document = pDoc;
if (pd.ShowDialog() == DialogResult.OK)
{
pDoc.Print();
}
}
我用于打印的打印机型号是Godex G300,我哪里出错了?
2条答案
按热度按时间sshcrbum1#
您的代码中至少有一个主要问题,请参考this Microsoft documentation page以了解具体是如何完成的。
为
PrintPage()
分配事件处理程序时,应将其 Package 在PrintPageEventHandler
中,如下所示:尝试执行上述操作,如果不起作用,请在
PrintPicture()
方法中放置一个实际的断点来调试它。qojgxg4l2#
问题是我没有设置DPI,我在代码中添加了这一行。
bmp.SetResolution(203, 203);
这是新方法: