急 c# winform 自定义打印行的内容

太阳丛 2009-08-04 12:06:07
我做了一个会员的管理软件 我想再里面实现账单打印,打印内容如下:
单位名称

账单号:200908030001
结账时间:2009-08-04 01:23:20
---------------------------------
消费项目 单价 数量 总计
项目一 1 2 2
项目二 5 3 15
。。。

总计:400 元
折扣:50%
实收:200 元
结账方式:现金
---------------------------------
联系地址:单位地址
联系电话:88888888888

客户签名____________

我要怎么设置打印的内容呢

这里面要考虑混合结账时候的东西 比如现金和银行卡,使用优惠券等等

本人菜鸟 对打印一窍不通 期待高手 帮个忙 能帮我实现打印的项目是活的

...全文
324 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaozi_249 2009-08-13
  • 打赏
  • 举报
回复
其实很简单 如果你上面的样式是个死的话,打印的时候把坐标固定死就可以了。
如果是活的就要多几个判断。
太阳丛 2009-08-13
  • 打赏
  • 举报
回复
错了 应该是 Int a=20;
太阳丛 2009-08-13
  • 打赏
  • 举报
回复
最近比较忙,没有及时结贴,
先结贴
解决方法就像我的代码:
String text0 = ""; String text1 = "";
//获取文本框的内容绘制图形传到打印机打印
text0 = this.textBox1.Text;
text1 = this.label1.Text;
e.Graphics.DrawString(text0 + text1,new Font("宋体", 30, FontStyle.Regular), Brushes.Black, 0,0);
e.Graphics.DrawString(text1, new Font("宋体", 30, FontStyle.Regular), Brushes.Black, 20, 0);
e.Graphics.DrawString("___________________________________________", new Font("宋体", 30, FontStyle.Regular), Brushes.Blue, 40, 0);

我把横坐标设置成变量 然后判断要打印的内容是否存在就可以解决了

如我申明 string a=20;
我的代码就是
String text0 = ""; String text1 = "";
//获取文本框的内容绘制图形传到打印机打印
text0 = this.textBox1.Text;
text1 = this.label1.Text;
e.Graphics.DrawString(text0 + text1,new Font("宋体", 30, FontStyle.Regular), Brushes.Black, 0,0);
if (texti存在值)
{
e.Graphics.DrawString(text1, new Font("宋体", 30, FontStyle.Regular), Brushes.Black, a, 0);
a=a+20;
}
e.Graphics.DrawString("___________________________________________", new Font("宋体", 30, FontStyle.Regular), Brushes.Blue,a , 0);

结贴
vesion 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lsj_zrp 的回复:]
使用PrintDocument
然后向里面画内容
[/Quote]
正确
太阳丛 2009-08-05
  • 打赏
  • 举报
回复
打印机的问题,
难道没有人感兴趣吗?
惭愧,
发了一个没有多少人关注的贴,
或许是我的问题太简单了,
众朋不与回帖,
意寓不屑。。。。。
太阳丛 2009-08-05
  • 打赏
  • 举报
回复
这么久没有人给个具体的方案,
等我搞定后再结贴,
可能要一阵子了,毕竟没有搞过,
先对不住回帖的兄弟了!!!!
wtboy 2009-08-05
  • 打赏
  • 举报
回复
关注中。。。。
太阳丛 2009-08-04
  • 打赏
  • 举报
回复
怎么没人响应哦 ??
太阳丛 2009-08-04
  • 打赏
  • 举报
回复
期待中。。。。。
太阳丛 2009-08-04
  • 打赏
  • 举报
回复
用CrystalReportViewer和PrintDocument
我知道 但是不知道怎么处理动态的东西,
比如消费的项目的数量并不是固定的,
可能只有一个,也可能有几个,也可能有几十个。
GUI+好像是画图之类的吧
fastreport 和 Aspose 更不会用,头一次听说 呵呵

参考C# WinForm开发系列 - Print 我还在看

希望能给个具体的例子 关键是动态的地方

我现在的代码是:

String text0 = ""; String text1 = "";
//获取文本框的内容绘制图形传到打印机打印
text0 = this.textBox1.Text;
text1 = this.label1.Text;
e.Graphics.DrawString(text0 + text1,new Font("宋体", 30, FontStyle.Regular), Brushes.Black, 0,0);
e.Graphics.DrawString(text1, new Font("宋体", 30, FontStyle.Regular), Brushes.Black, 0, 50);
e.Graphics.DrawString("___________________________________________", new Font("宋体", 30, FontStyle.Regular), Brushes.Blue, 0, 100);
peterb 2009-08-04
  • 打赏
  • 举报
回复
xfreyes 2009-08-04
  • 打赏
  • 举报
回复
可以考虑其他控件,如Aspose做这方面的东西很好
bigmingming 2009-08-04
  • 打赏
  • 举报
回复
fastreport
lsj_zrp 2009-08-04
  • 打赏
  • 举报
回复
使用PrintDocument
然后向里面画内容
silenceace 2009-08-04
  • 打赏
  • 举报
回复
得用GUI+ 不过你这样的貌似不难 参考MSDN
zming 2009-08-04
  • 打赏
  • 举报
回复
用水晶报表画好你要打印的内容,将报表扔到CrystalReportViewer中(设置其ReportSource属性),

最后调用CrystalReportViewer.PrintReport()方法,就输出到打印机了。

VS2005/2008 带有水晶报表的简版。




111,092

社区成员

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

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

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