C# 可视化 打印格式设计 模板设计 单据打印 标签打印

阅读: 评论:0

C# 可视化 打印格式设计 模板设计 单据打印 标签打印

C# 可视化 打印格式设计 模板设计 单据打印 标签打印

时常在网络上搜索关于打印格式的设计方面的资料,发现资料比较少,前一段时间因为有一个项目有这样一个需求,需要客户自定义打印格式,自己干脆做了一个,基本能满足要求.

下载地址

开发环境:vs2019 + Dev express 20.1

引用下载的DLL后,把里面的 frmFormatForm 设计窗体show出来. 上来先新建一个容器,该容器决定打印的纸张大小,然后点击后面的控件,按需添加控件到容器中.默认放在容器的左上角,叠在一起可能看不到,需要挪开上层控件,下面的才能看到.

 HY.PrintSet.frmFormatSetForm f1 = new HY.PrintSet.frmFormatSetForm();f1.Show();

目前只能通过右边字段属性进行调整,不能在预览界面拖拉控件.(后续看看是否有办法)

打印模板设计好后,保存到本地一个文件,(后缀.fmt),调用很简单了.

 private string ReadFormat(string filename){string json = "";           FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);StreamReader sr = new StreamReader(fs, Encoding.UTF8);string strLine = "";while ((strLine = sr.ReadLine()) != null){json += strLine;}return json;}

先读取模板的json内容,反序列化一下,得到模板对象.

 JsonSerializerSettings jsset = new JsonSerializerSettings();jsset.TypeNameHandling = TypeNameHandling.All;PFormat fmat = JsonConvert.DeserializeObject<PFormat>(json, jsset);

 然后调用DLL里面的PrintService ,传对应的参数进去,fmat是上面反序列化的PFormat对象(即打印模板), 打印需要传递打印机名进去.

PrintService ps = new PrintService(是否横向,fmat, 单头数据dic, 单身数据dt,false);           if (是否预览) {ps.PrintView();}else{ps.Print(打印机名);}

c# 获取本地打印机 :

//获取本地打印机列表 
public static List<String> GetLocalPrinters(){List<String> fPrinters = new List<String>();           foreach (String fPrinterName in PrinterSettings.InstalledPrinters){if (!fPrinters.Contains(fPrinterName)){fPrinters.Add(fPrinterName);}}return fPrinters;}

打印机列表可以绑定到界面的下拉控件让用户自己选择 . 或者设置默认.

当然可以仅有单头,没有表格(传null进去),比如标签类打印,程序会自动判断. 存在表格数据,打印页数根据单身数据行数/模板设定每页行数 得到. 

单头数据格式如下:

 Dictionary<string, string> dicHead = new Dictionary<string, string>();dicHead.Add(fieldName, value); //fieldName对应格式设计中的FieldName,Value为打印的值

 

 设计时显示绑定字段名,实际打印时,会用真实数据替换.

单身数据为一个DataTable表格,包含行列数据, 
列名为格式中字段中绑定的FieldName,
打印时每一行对应的值自动填充到需要打印的位置.

 

之前看到有些朋友用BarTender 设计格式,打印时调用组件和格式文件 实现打印, 或者用水晶报表来实现, 测试发现打印速度真的是慢如牛,特别是某些办公电脑卡的很,还不怎么灵活.

还是用纯自带的组件,那速度杠杠的.也没有什么授权认证,这省了多少资源.

 下载地址: 组件下载

如有需要上面的源代码,说明情况,留下邮箱,我看到后酌情 回发附件.

本文发布于:2024-02-02 08:30:57,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170683385842592.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:单据   模板   标签   格式
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23