U9集成条码打印机(科诚)

1. 配置打印模板

【基础设置(集团)】-【打印配置】


image.png

实体:需要打印的实体
数据类型:常量、字段(取值来自实体)
字段:实体下的字段
字段(公式):通过公式取值
打印类型:文本、条码、二维码
数据:当数据类型为常量时需要维护常量的值
PosX:数据在纸张上的横轴位置单位dot
PosY:数据在纸张上的竖轴位置单位dot
字段高度:当打印类型为文本时有效
对齐方式:
条码类型:当打印类型为条码时有效
数据长度/小数位数:数据为字符串时用于截取字符串的长度,数据为数字时小数位数有效
日期格式:数据为日期时对日期进行格式化
数据截取类型:当数据为字符串时截取字符串(从左截取、从右截取)

1.1. 字段

用于设置数据的取值来源,使用字段(公式)实现更加灵活的取值方式。

1.2. 字段(公式)

image.png
  1. 由于未实现字段的树形参照,通过此字段取层级深的数据比如取标准销售-客户-立账条件的名称,字段(公式):
    OrderBy.Customer.ARConfirmTerm.Name
  2. 通过中间表取数,取收款计划的收款的整单金额,字段(公式):
    Entity:UFIDA.U9.SM.InstalmentRecSchedule.InstalmentRecSchedule:DocID=ID:Status
  3. 通过(OrderBy.Customer.ARConfirmTerm.Name+验)可以实现动态数据(OrderBy.Customer.ARConfirmTerm.Name)+静态数据(验)

2. 安装WebPrint、配置打印机IP(打印机连接的电脑的IP)

2.1. 安装WebPrint

  1. WebPrint下载地址:
    https://s3.cn-north-1.amazonaws.com.cn/godex/GXDXqOixaOHR6gZvVnUBgQ.file?v01
  2. 只有连接打印机的电脑需要安装WebPrint,电脑安装好WebPrint并连接好打印机后在U9配置打印机IP

2.2. 配置打印机IP

【基础设置(集团)】-【公共设置】-【参数设置】配置【连接打印机的电脑的IP地址】

2.3. 网络配置

U9服务器需要可以访问打印机连接电脑的IP

3. 选择、修改打印数据、打印

3.1. 选择需要打印的数据

image.png

选择需要打印的数据点击打印条码

3.2. 修改需要打印的数据

image.png

3.3 调用打印机

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web.Script.Serialization;
using UFIDA.U9.Cust.IESLabBE.CommonBE;
using UFIDA.U9.Cust.IESLabBP.Util;

namespace UFIDA.U9.Cust.IESLabBP.PrinterBP
{
    /// <summary>
    /// 科诚Web打印
    /// </summary>
    class GoDEXWebPrinter
    {
        private const string PROFILE_GODEXWEBURL = "GoDEXWebUrl";
        /// <summary>
        /// 向打印机发送打印请求
        /// </summary>
        /// <param name="commond"></param>
        /// <param name="printData"></param>
        private void DoCommand(string commond, PrintData printData)
        {
            string url = GetGoDEXWebUrl() + commond+"/";
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            request.Method = "Post";
            request.ContentType = "application/x-www-form-urlencoded";
            string data = SerializeToJSONString(printData);
            data = Convert.ToBase64String(Encoding.Default.GetBytes(data));
            data = "EncodeData=" + data;
            request.ContentLength = data.Length;
            using (var postStream = new StreamWriter(request.GetRequestStream()))
            {
                postStream.Write(data);
            }
            var response = (HttpWebResponse)request.GetResponse();
            using (StreamReader reader=new StreamReader(response.GetResponseStream()))
            {
                reader.ReadToEnd();
            }
        }
        /// <summary>
        /// 发送需要打印的数据
        /// </summary>
        /// <param name="data"></param>
        private void PrintDataCommand(List<PrintDataDTO> data)
        {
            foreach (PrintDataDTO printData in data)
            {
                PrintData printConfig = new PrintData(printData);
                CommandEnum commandEnum = CommandEnum.ecTextOut;
                if (printData.DataType.Value== DataTypeEnum.BarCode.Value)
                {
                    commandEnum = CommandEnum.PrintBarcode;
                }
                if (printData.DataType.Value == DataTypeEnum.QRCode.Value)
                {
                    commandEnum = CommandEnum.PrintQrcode;
                }
                DoCommand(commandEnum.ToString(), printConfig);
            }
        }
        /// <summary>
        /// 发送开始打印请求
        /// </summary>
        private void SendLCommand()
        {
            PrintData printConfig = new PrintData();
            printConfig.Data = Convert.ToBase64String(Encoding.Default.GetBytes("^L"));
            DoCommand(CommandEnum.Send.ToString(), printConfig);
        }
        /// <summary>
        /// 发送打印结束请求
        /// </summary>
        private void SendECommand()
        {
            PrintData printConfig = new PrintData();
            printConfig.Data = Convert.ToBase64String(Encoding.Default.GetBytes("E"));
            DoCommand(CommandEnum.Send.ToString(), printConfig);
        }
        /// <summary>
        /// 打印
        /// </summary>
        /// <param name="data"></param>
        public void Print(List<PrintDataDTO> data)
        {
            SendLCommand();
            PrintDataCommand(data);
            SendECommand();
        }
        /// <summary>
        /// 对象转JSON字符串
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private string SerializeToJSONString(object obj)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            return jss.Serialize(obj);
        }
        /// <summary>
        /// 获取打印机IP地址
        /// </summary>
        /// <returns></returns>
        private string GetGoDEXWebUrl()
        {
            string baseUrl=ProfileUtils.GetProfileValue(PROFILE_GODEXWEBURL);
            if (string.IsNullOrEmpty(baseUrl))
            {
                throw new Exception("请先在【基础设置(集团)】-【参数设置】中添加连接科德打印机的电脑的IP地址");
            }
            return baseUrl;
        }
    }
    /// <summary>
    /// 传给打印机的数据
    /// </summary>
    class PrintData
    {
        public string Interface { get; set; }
        public string USB { get; set; }
        public string COM { get; set; }
        public string BaudRate { get; set; }
        public string LPT { get; set; }
        public string IP { get; set; }
        public string Port { get; set; }
        public string PosX { get; set; }
        public string PosY { get; set; }
        public string FontHeight { get; set; }
        public string Height { get; set; }
        public string Wide { get; set; }
        public string Narrow { get; set; }
        public string FontName { get; set; }
        public string Align { get; set; }
        public string Data { get; set; }
        public string BarcodeType { get; set; }
        public string Readable { get; set; }
        private void CommondInstance()
        {
            Interface = "USB";
            USB = "";
            COM = "";
            BaudRate = "";
            LPT = "";
            IP = "";
            Port = "";
            PosX = "";
            PosY = "";
            FontHeight = "";
            Height = "";
            Wide = "";
            Narrow = "";
            FontName = "";
            Align = "";
            Data = "";
            BarcodeType = "";
            Readable = "";
        }
        public PrintData()
        {
            CommondInstance();
        }
        public PrintData(PrintDataDTO printData)
        {
            CommondInstance();
            PosX = printData.PosX.ToString();
            PosY = printData.PosY.ToString();
            Data = Convert.ToBase64String(Encoding.Default.GetBytes(printData.Data));
            FontHeight = printData.FontHeight.ToString();
            Height = printData.FontHeight.ToString();
            Align = printData.Align.Value.ToString();
            BarcodeType = printData.BarcodeType.Value.ToString();
            Readable = printData.Readable.Value.ToString();
            Narrow = printData.Narrow.ToString();
            Wide = printData.Wide.ToString();
        }
    }
    enum CommandEnum
    {
        Send,ecTextOut, PrintBarcode, PrintQrcode
    }
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 5,722评论 3 8
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 7,241评论 0 3
  • 不知不觉易趣客已经在路上走了快一年了,感觉也该让更多朋友认识知道易趣客,所以就谢了这篇简介,已做创业记事。 易趣客...
    Physher阅读 3,414评论 1 2
  • 双胎妊娠有家族遗传倾向,随母系遗传。有研究表明,如果孕妇本人是双胎之一,她生双胎的机率为1/58;若孕妇的父亲或母...
    邺水芙蓉hibiscus阅读 3,699评论 0 2