Excel vba直接调用斑马打印机进行打印代码

news2025/1/21 6:37:03

1.难点

1.1 vba 对zebra打印机调用方法open

1.2 zebra打印机默认支持UTF8 编码方式,对应编码命令为CI28; 支持GB2312 GB18030 ASCII码编码方式,对应编码命令为CI26

1.3 VBA对中文只支持GB2312,  而excel 是默认支持UTF8的, excel 与VBA编码环境并不一样。

1.4 斑马打印机(新机默认环境)是UTF8的,需要指定字体(SIMSUN.TFF)和编码方式(CI26  支持GB18030,兼容GB2312)

2.代码样例

Sub 打印()
 Dim file As String
 'Dim i, NumLabels As Integer
  file = ""
 ' MyPrinter = "\\10.165.98.33\IP_Print_ZDesigner ZT410-203dpi ZPL(test)"
  'NumLabels = 1
  Call optxt(file)
  'printcmd = "copy  " & file & ""
  'printcmd = printcmd & " \\10.165.98.33\IP_Print_ZDesigner ZT410-203dpi ZPL(test)"
    
 'Open MyPrinter For Output As #2
   ' Print #2, "^PQ" & NumLabels
   ' Print #2, file
   ' Close #2
 'Shell ("copy  " & file & """  \\10.165.98.33\IP_Print_ZDesigner ZT410-203dpi ZPL(test)""")
 'Debug.Print printcmd
' Shell printcmd
' Shell"C:\windows\system32NOTEPAD.EXE  /p   " & file
   
       
End Sub


Function optxt(file)

Dim FSN, sheetname, nowDate, SN, PN, SEQ, ItemDesc1, ItemDesc2, PIK, CDT, MyPrinter As String
Dim i, NumLabels As Integer

sheetname = ActiveWindow.ActiveSheet.name    '当前光标sheetname
FSN = Sheets(sheetname).Range("B16") & Format(Now, "YYYY") & Format(Now, "MM") & Format(Now, "DD") & Format(Now, "hhmmss") '输出历史文件用的文件名变量
SN = Sheets(sheetname).Range("B16") & Format(Now, "YYYY") & Format(Now, "MM") & Format(Now, "DD") & Format(Now, "hhmmss") '输出产品流水号(唯一),给二维码生产使用
PN = Sheets(sheetname).Range("B16")  '模板上面产品型号,因为标签纸装不下,所以SN拆分成PN与SEQ
SEQ = Format(Now, "YYYY") & Format(Now, "MM") & Format(Now, "DD") & Format(Now, "hhmmss") '同上
ItemDesc1 = Sheets(sheetname).Range("B18")  '获取中文描述
ItemDesc2 = Sheets(sheetname).Range("B19")  '获取中文描述
CDT = Format(Now, "yyyy/mm/dd") & "  " & Format(Now, "hh:mm:ss")  '获取格式化后时间格式
PIK = Sheets(sheetname).Range("B20")  '获取看板值,以上值在每个sheet都是固定的
    
'定义文本文件的名称

Path = ThisWorkbook.Path & "\history\"
If Dir(Path) <> "" Then
file = ThisWorkbook.Path & "\history\" & FSN & ".txt" '如果为真则把新建的txt文件放在该路径的路径
Else
MkDir (ThisWorkbook.Path & "\history")  '如果为假则把先创建该文件夹,让后把新建的txt文件放在该路径的路径
file = ThisWorkbook.Path & "\history\" & FSN & ".txt"
End If

Open file For Output As #1    '打开a.txt,指定文件编号为#1
    Print #1, "^XA~TA000~JSN"
    Print #1, "^LT0"
    Print #1, "^MD3"
    Print #1, "^PON"
    Print #1, "^PMN"
    Print #1, "^LH0,0"
    Print #1, "^PR3,6"
    Print #1, "^SD20"
    Print #1, "^JUS"
    Print #1, "^LRN"
    Print #1, "^CI0"
    Print #1, "^XZ"
    Print #1, "^XA"
    Print #1, "^CWS,E:SIMSUN.TTF"
    Print #1, "^MMT"
    Print #1, "^PW416"
    Print #1, "^LL0320"
    Print #1, "^LS0 "
    Print #1, "^FT33,166^BQN,2,4"
    Print #1, "^FH\^FDHA," & SN & "^FS "
    Print #1, "^FPH,2^FT153,61^A0N,23,25^FH\^CI28^FD" & PN & "^FS^CI27"
    Print #1, "^FPH,2^FT153,90^A0N,23,25^FH\^CI28^FD" & SEQ & "^FS^CI27"
    Print #1, "^FPH,2^FT153,145^A0N,11,10^FH\^CI28^FD*****^FS^CI27"
    Print #1, "^FPH,2^FT253,145^A0N,11,10^FH\^CI28^FD" & CDT & "^FS^CI27"
    Print #1, "^FPH,2^FT33,170^ASN,15,10^FH\^CI26^FD" & ItemDesc1 & "^FS^CI27"
    Print #1, "^FPH,2^FT33,190^ASN,15,10^FH\^CI26^FD" & ItemDesc2 & "^FS^CI27"
    Print #1, "^FO23,190^GB370,0,4^FS"
    Print #1, "^FPH,2^FT90,220^ASN,23,25^FH\^CI26^FD包覆件报产条码^FS^CI27"
    Print #1, "^BY2,3,40^FT35,270^BCN,,Y,N^FH\^FD" & PIK & "^FS^CI27"
    Print #1, "^PQ1,0,1,Y"
    Print #1, "^XZ"
    Close #1
    optxt = file
    
    'MyPrinter = "\\10.165.98.33\IP_Print_ZDesigner ZT410-203dpi ZPL(test)"
     MyPrinter = "\\10.165.98.33\IP-print-ZDesigner ZT411-203dpi ZPL(station20)"  '打印机位置,这种方式默认对共享打印机有效。
    NumLabels = 1                                                                 '打印数量
    

    Open MyPrinter For Output As #2    '打开打印机通道,指定文件编号为#2
    Print #2, "^XA~TA000~JSN"
    Print #2, "^LT0"
    Print #2, "^MD3"
    Print #2, "^PON"
    Print #2, "^PMN"
    Print #2, "^LH0,0"
    Print #2, "^PR3,6"
    Print #2, "^SD20"
    Print #2, "^JUS"
    Print #2, "^LRN"
    Print #2, "^CI0"
    Print #2, "^XZ"
    Print #2, "^XA"
    Print #2, "^MMT"
    Print #2, "^PW416"
    Print #2, "^LL0320"
    Print #2, "^LS0 "
    Print #2, "^CWS,E:SIMSUN.TTF"     '使用simun宋体,且别名为S
    Print #2, "^SEE:GB18030.DAT^CI26"  '新打印机必须用该命令为SIMSUN指定GB18030.DAT编码

    Print #2, "^FT33,166^BQN,2,4"
    Print #2, "^FH\^FDHA," & SN & "^FS "
    Print #2, "^FPH,2^FT153,61^A0N,23,25^FH\^CI28^FD" & PN & "^FS^CI27"
    Print #2, "^FPH,2^FT153,90^A0N,23,25^FH\^CI28^FD" & SEQ & "^FS^CI27"
    Print #2, "^FPH,2^FT153,145^A0N,11,10^FH\^CI28^FD**********^FS^CI27"
    Print #2, "^FPH,2^FT253,145^A0N,11,10^FH\^CI28^FD" & CDT & "^FS^CI27"
    Print #2, "^FPH,2^FT33,170^ASN,15,10^FH\^CI26^FD" & ItemDesc1 & "^FS^CI27"
    Print #2, "^FPH,2^FT33,185^ASN,15,10^FH\^CI26^FD" & ItemDesc2 & "^FS^CI27"
    Print #2, "^FO23,190^GB370,0,4^FS"
    Print #2, "^FPH,2^FT90,220^ASN,23,25^FH\^CI26^FD****包覆件报产条码^FS^CI27"
    Print #2, "^BY2,3,40^FT35,270^BCN,,Y,N^FH\^FD" & PIK & "^FS^CI27"
    Print #2, "^PQ" & NumLabels & ",0,1,Y"
    Print #2, "^XZ"
    Close #2
End Function

打印机代码

从Excel VBA打印到” ZPL打印机” Zebra标签打印机Chrome插件模拟器时,如何将端口永久设置为9100 | 码农家园 (codenong.com)icon-default.png?t=N3I4https://www.codenong.com/59376654/

ZEBRA 官网中文调用

通过 VBA(Visual Basic for Applications)发送 ZPL (zebra.cn)icon-default.png?t=N3I4https://supportcommunity.zebra.cn/s/article/Sending-ZPL-via-VBA-Visual-Basic-for-ApplicationsArticle Detail (zebra.cn)icon-default.png?t=N3I4https://supportcommunity.zebra.cn/s/article/Zebra-Printer-Chinese-SimSun-font

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

钛碳化铝(Ti3AlC2)在实验检测领域中的应用

钛碳化铝Ti3AlC2是一种属于MAX相&#xff08;M代表金属元素&#xff0c;A代表主族元素&#xff0c;X代表碳或氮&#xff09;的陶瓷材料。它是由钛、铝和碳组成的复合材料&#xff0c;拥有优异的力学、热学和电学性能。由于这些性质&#xff0c;Ti3AlC2已成为近年来研究和应用的…

[Netty源码] ByteBuf相关问题 (十)

文章目录 1.ByteBuf介绍2.ByteBuf分类2.1 AbstractByteBuf2.2 AbstractReferenceCountedByteBuf2.3 UnpooledHeapByteBuf2.4 UnpooledDirectByteBuf2.5 PooledDirectByteBuf 1.ByteBuf介绍 字节缓冲区, jdk NIO的ByteBuffer比较复杂, netty重新设计了ByteBuf用以代替ByteBuffe…

直方图实例详解(颜色直方图、灰度直方图)

直方图实例详解&#xff08;颜色直方图、灰度直方图&#xff09; 本篇目录&#xff1a; &#x1f984; 一、前言 &#x1f984; 二、直方图的概念 &#x1f984; 三、颜色直方图 &#xff08;1&#xff09;、颜色直方图定义 &#xff08;2&#xff09;、颜色直方图使用方法…

线程池中的拒绝策略

线程池中的拒绝策略 什么情况下出发拒绝策略? 当提交任务数大于corePoolSize的时候,会将多余任务缓存在workQueue阻塞队列中当阻塞队列满了,会扩充线程数当扩充线程数大于maximumPoolSize的时候,就会触发拒绝策略 也就是说,当任务数大于workQueue.size() 和maximumPoolSize…

同态随机基加密的量子多方密码-数学公式

众所周知&#xff0c;信息和信息处理的完全量子理论提供了诸多好处&#xff0c;其中包括一种基于基础物理的安全密码学&#xff0c;以及一种实现量子计算机的合理希望&#xff0c;这种计算机可以加速某些数学问题的解决。这些好处来自于独特的量子特性&#xff0c;如叠加、纠缠…

《PyTorch 深度学习实践》第9讲 多分类问题(Kaggle作业:otto分类)

文章目录 1 一些细碎代码1.1 Cross Entropy1.2 Mini-batch: batch_size3 2 示例3 作业任务描述查看数据进行建模提交Kaggle总结 该专栏内容为对该视频的学习记录&#xff1a;【《PyTorch深度学习实践》完结合集】 专栏的全部代码、数据集和课件全放在个人GitHub了&#xff0c;…

分享:作业帮在多云环境下的高可用双活架构优化实践

欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 本文来自OceanBase社区分享&#xff0c;仅限交流探讨。作者介绍&#xff1a;刘强&#xff0c;就职于作业帮基础架构 DBA 团队&#xff0c;负责分布式数据库的探索和使用&#xff0c;协同研发团队在…

node 链接MySql数据库并 进行增删改查

在Navicat中创建数据库创建表 那么就开始吧&#xff01; 一、链接数据库 mysql - npmA node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 100% MIT licensed.. Latest version: 2.18.1, last published: 3 years ago. Start usin…

15.使用组件

目录 1 独立组件 2 私有子组件 3 全局组件 1 独立组件 我当前App.vue的内容是这样的 LEFT.vue的内容是这样的 RIGHT.vue的内容是这样的 那么这个时候我们认为 left.vue&#xff0c;right.vue与App.vue 是彼此独立的三个组件 2 私有子组件 我现在想把LEFT.vue与RIGHT.…

操作系统原理 —— 操作系统运行机制与体系结构(三)

什么是操作系统的指令&#xff1f; 指令就是处理器(CPU)能识别、执行的最基本命令。 比如我们平时写的 Java 代码、C 语言代码&#xff0c;CPU 它能直接识别并且运行吗&#xff1f; 当然是不行的。 Java、C 语言这些都属于高级语言&#xff0c;它们还需要经过一系列的编译最…

再也不怕面试官问:详解Synchronized和Lock的实现原理及使用场景

1、Synchronized与Lock对比 实现方式&#xff1a;Synchronized是Java语言内置的关键字&#xff0c;而Lock是一个Java接口。锁的获取和释放&#xff1a;Synchronized是隐式获取和释放锁&#xff0c;由Java虚拟机自动完成&#xff1b;而Lock需要显式地调用lock()方法获取锁&#…

Moonbeam 操作指南|使用Docker和Systemd在Moonbeam上运行节点

运行全节点允许您存储链的本地副本、验证新的区块、获取对RPC端点的本地访问权限以及配置为创作区块的收集人等。 &#x1f4c4; 查看开发者文档 重点操作如下&#xff1a; 虽然运行&#xff08;和升级&#xff09;您自己的节点需要付出时间和精力&#xff0c;但同时您也会获…

动力节点Vue笔记——第四章Vue与Ajax

四、Vue与AJAX 4.1 回顾发送AJAX异步请求的方式 发送AJAX异步请求的常见方式包括&#xff1a; 原生方式&#xff0c;使用浏览器内置的JS对象XMLHttpRequest const xhr new XMLHttpRequest()xhr.onreadystatechange function(){}xhr.open()xhr.send() 原生方式&#xff0…

【算法题】2583. 二叉树中的第 K 大层和

题目&#xff1a; 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和&#xff08;不一定不同&#xff09;。如果树少于 k 层&#xff0c;则返回 -1 。 注意&#xff0c;如果两个节点与根节点的距离相同&…

Android kotlin 用RecyclerView(androidx+BRVAH3.0.6)实现从底部弹出列表对话框(单选/多选)功能

文章目录 一、实现效果二、引入依赖三、实现源码1、实体类2、适配器单选/多选3、框架弹窗AnyLayer单选/多选3、实现视图一、实现效果 二、引入依赖 在app的build.gradle在添加以下代码 1、框架弹窗AnyLayer(github官网):implementation "com.github.goweii:AnyLayer:4.1…

linux(CentOS 6.5) 安装 Oracle 11g步骤

第一步&#xff1a;准备 1、服务器环境&#xff1a; 系统:CentOS 6.5 (Final) x86_64(Py3.7.8) 2、Navcat&#xff1a; 版本16.0.14 - Premium&#xff08;这里数据库管理工具&#xff0c;不限&#xff0c;可以用其他的&#xff09; 3、FinalShell&#xff1a; 版本3.9.2.2&a…

FE_CSS 页面布局之圆角边框 盒子阴影 文字阴影

1 圆角边框 在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。border-radius 属性用于设置元素的外边框圆角。 border-radius:length;参数值可以为数值或百分比的形式如果是正方形&#xff0c;想要设置为一个圆&#xff0c;把数值修改为高…

2023-04-15 算法面试中常见的链表问题

2023-04-15 算法面试中常见的链表问题 本章的两个基础类如下 链表的节点类。toString()在debug时实时查看链表很有用 /************************************************************ Description : 链表的节点* author : 梁山广(Liang Shan Guang)* date : 2020…

使用Oracle数据库的java程序员注意:不要再使用generated always as identity了!

Identity Columns是在Oracle版本≥12c中的新特性&#xff1a;自增字段 在自增字段后使用以下2种语句的1种即可完成自增&#xff1a; generated by default as identitygenerated always as identity 在userinfo表的基础上&#xff0c;我们来看下区别&#xff1a; 1、使用ge…

VMware vSphere 8.0 Update 1 正式版发布 - 企业级工作负载平台

ESXi 8.0 U1 & vCenter Server 8.0 U1 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vsphere-8-u1/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 2023-04-18&#xff0c;VMware vSphere 8.0 Update 1 正式…