首页 > 编程知识 正文

winform 打印控件,winform打印pdf控件

时间:2023-05-04 14:03:59 阅读:181174 作者:3606

最近的工作需要调用打印机功能。 根据. net的PrintDocument实现调用打印机打印功能,在PrintDocument_PrintPage事件中进行打印内容的绘制,实际上是用Graphics填充画板的绘制内容并最后打印。

privatevoidprintdocument1_ print page (object sender,system.drawing.printing.printpageeventargse ) { font font=new forge Brush bru=Brushes.Black; e.Graphics.DrawString (“模块条形码信息”,font,bru,10,10 ); e.graphics.drawstring($ '模块代码({this.textBox1.Text} ) )、font1、bru、10、30 ); e.graphics.drawstring($ '日期(datetime.now.tostring ),yyyy-mm-DDHH:mm:ss ' ),font1,bru,10 varimg //img.set resolution (cmconverttopx (6(6,cmconverttopx )6); bitmapbitmap=newbitmap(img,cmconverttopx(4),cmconverttopx(4) ); //e.graphics.drawline(newpen (,)//e.graphics.drawe.graphics.drawimage ) bitmap, CMConvertToPX(2) )2 }考虑到打印内容的可调性和设计模板页面的可视化,从网上找几个打印标签软件,如bartender,考虑到熟悉费用和他的使用规则,自己简单的打印模板想法可能是这样的:

设计者设计可视化的打印模板,打印工具对打印模板进行分析并进行动态数据输入,最后打印时根据规则进行重绘打印。

1 .打印内容确认:静止文本、静止图像、动态文本、二维码、条形码

2 .开发框架Winfrom基于panel容器进行控件拖动设计:使用的工具箱Label、LinkLabel、PictureBox

3 .标签属性数据用属性grid编辑,最终保存为自定义json数据。

4 .打印辅助类解析打印。

5 )注意:静态图像进行base64字符串保存,考虑到有背景为表的打印模板,这里也视为图像的一种,粘贴在模板的底部。

条形码的生成使用二维码、zxing工具类。

上面的成果图:

调用部分

var dicData=new Dictionarystring,string (; DICdata.add(modulecode ),this.textBox1.Text ); //组装打印配置var config=print helper.getprintertagconfig (@ ' config/config.JSON ',dicData ); //打印调用helper.preview print (config,new PrintSetting ) { document name=this.textbox2. text } );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。