100分求关于绘图打印问题

zhlin118 2011-11-10 11:27:25
下面是一段条码打印的代码,目前我是采用一个条码控件生成条码,然后抓取条码图进行图片打印,也就是说每次打印的是一个条码。我现在想一次同时并排打印出两个条码(都是这一个条码),怎么弄呢?我想的是绘图的时候并排绘两份,不知道这样行不行,请大侠帮忙修改一下,绘图的时候同时绘两个条码图出来,主要业务在打印方法里,谢谢!


private System.Drawing.Printing.PrintDocument printBarcode;
/// <summary>
/// 窗体初始化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmBarcode_Load(object sender, EventArgs e)
{
try
{
printBarcode = new System.Drawing.Printing.PrintDocument();
printBarcode.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(printBarcode_PrintPage);
}
catch (Exception ex)
{
new ExecptionResolvent(ex);
}
}

Bitmap printBmp;
void printBarcode_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(printBmp, new Point(0, 0));
}

/// <summary>
/// 打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnPrint_Click(object sender, EventArgs e)
{
try
{
Graphics g = barcodePic.CreateGraphics();
printBmp = new Bitmap(barcodePic.Size.Width, barcodePic.Size.Height + 10, g);
g = Graphics.FromImage(printBmp);
g.CopyFromScreen(this.Location.X + barcodePic.Location.X, this.Location.Y + barcodePic.Location.Y + SystemInformation.CaptionHeight, 0, 0, this.Size);

printBarcode.Print();
}
catch (Exception ex)
{
new ExecptionResolvent(ex);
}
}

...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhlin118 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 calmzeal 的回复:]

我们现在用二维条码
直接用条码打印机打印
[/Quote]

我这也是条码打印机,主要是条码打印机自带的软件不好跟我的系统做关联,以及保证条码的唯一性,所以我得自己去写条码打印。
allen0118 2011-11-10
  • 打赏
  • 举报
回复

你的条码数据源是怎么设置的?我把我做过的告诉你你参考一下吧:

我这里打印设备是用的BarTender7.75这个工具,打印的格式都是设置好的模板文件(.btw),你想要打印出来什么样子你就把模板设置成什么样子,打印的时候就是
调用一个命令就可以了,没必要通过绘图去出来(个人觉得而已),数据源我是采用的文本文件,将需要打印的条码数据保存在一个文本文件里面,然后在程序里面指定
到这个文本文件为数据源,需要打印几张就打印几张。

string bartendAdd = this.txtConfig.Text.Trim();
string sn = @"D:\Bartend\temp.txt";
string btw = @"D:\Bartend\Num_1.btw";
Process.Start(bartendAdd, "/NOSPLASH /F=\"" + btw + "\" /D=\"" + sn + "\" /P /X");
calmzeal 2011-11-10
  • 打赏
  • 举报
回复
我们现在用二维条码
直接用条码打印机打印
zhlin118 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 calmzeal 的回复:]


void printBarcode_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(printBmp, new Point(0, 0));
}


里面加一句
e.Graphic……
[/Quote]

谢谢,可以实现~
zhlin118 2011-11-10
  • 打赏
  • 举报
回复
目前打出来是这样

想实现成这样:
calmzeal 2011-11-10
  • 打赏
  • 举报
回复

void printBarcode_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(printBmp, new Point(0, 0));
}


里面加一句
e.Graphics.DrawImage(printBmp, new Point(printBmp图片的width, 0));

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧