环境:Windows 10,Visual Studio 2017,ASP.NET Mvc,CodeSoft 2018


在C#读取Label模板的变量,用的是Document的ReadVariables方法,参数是enumDataSource枚举,对应CodeSoft里面的数据源窗口的数据源类型。传不同的枚举值获取相应的数据源集合。

namespace LabelManager2
{public enum enumDataSource{lppxDataSourceCounter = 1,lppxDataSourceTableLookup = 2,lppxDataSourceDate = 3,lppxDataSourceFormula = 4,lppxDataSourceFree = 5,lppxDataSourceForm = 6,lppxDataSourceDataBase = 7}
}

codesoft数据源→C#枚举enumDataSource

拿到的数据源集合是一个二维数组,可以转Json字符串再转List。

数据如图:


代码: 利用Document提供ReadVariables方法,根据不同的enumDataSource枚举读取Label模板的变量集合。出来的是一个二维数组,第一个是变量名,第二个是值。循环二维数组,把他组合成一个键值对。

注意:外层的数组长度要除2。

using LabelManager2;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;namespace CommonLibrary.Helpers
{public class CodeSoftHelper{public static void PrintLabel(string labPath, string printerName, string serialNumber, int quantity = 1){ApplicationClass labApp = null;Document doc = null;try{labApp = new ApplicationClass();labApp.Documents.Open(labPath, false);doc = labApp.ActiveDocument;object[,] lppxDataSourceFormula = (object[,])doc.ReadVariables(enumDataSource.lppxDataSourceFormula);string formulaName = lppxDataSourceFormula[0, 0].ToString();string formulaValue = lppxDataSourceFormula[0, 1].ToString();Dictionary<string, string> dic = new Dictionary<string, string>();for (int i = 0; i < lppxDataSourceFormula.Length / 2; i++){string key = "";string val = "";for (int j = 0; j < 2; j++){if (j == 0){key = lppxDataSourceFormula[i, j].ToString();}else{val = lppxDataSourceFormula[i, j].ToString();}}dic[key] = val;}string filePath = "D:\\" + System.DateTime.Now.Year + System.DateTime.Now.Month + System.DateTime.Now.Day + System.DateTime.Now.Hour + System.DateTime.Now.Minute + System.DateTime.Now.Second + ".bmp";//保存图片的路径  为后面预览图片做准备string st = doc.CopyImageToFile(8, "BMP", 0, 100, filePath);//doc.Printer.SwitchTo(printerName);//doc.FormFeed();//doc.PrintDocument(quantity);}catch (Exception e){throw e;}finally{labApp.Documents.CloseAll(true);labApp.Quit();GC.Collect(0);}}}
}

也可以先转成Json字符串,然后再转成一个List,List里面装的是一个由两个元素组成的字符串数组,第一元素是名称,第二个元素是值。

                string json = JsonConvert.SerializeObject(doc.ReadVariables(enumDataSource.lppxDataSourceFormula));List<string[]> lppxDataSourceFormula = JsonConvert.DeserializeObject<List<string[]>>(json);Dictionary<string, string> dic = new Dictionary<string, string>();foreach (var arr in lppxDataSourceFormula){dic[arr[0]] = arr[1];}

C#+CodeSoft 读取Label变量相关推荐

  1. python处理netcdf_在python中高效读取netcdf变量

    我需要能够在 python中快速读取大量的netCDF变量(每个文件1个变量).我发现netCDF4库中的数据集功能与其他语言(例如IDL)中的读取实用程序相比相当慢. 我的变量的形状为(2600,5 ...

  2. shell从oracle中获取变量,shell 如何读取环境变量的值

    笔者最近在开发中遇到新旧版本不兼容的问题,需要我解析的内容更新到最新后对于旧的日志将不支持,所以我需要设置开关来区分是用新的脚本还是原来旧的脚本: 这样我就遇到了比较基础的问题,那就是在shell脚本 ...

  3. 大小写 字符串_C# 读取环境变量,和字符串大小写转换

    string.ToLower() 更改大小写返回的是副本,原来的字符串还是原来的.ToUper()应该也是一样的吧: ToLower()只改变字母大小写,其他的字符不改变: 读取(系统)环境变量时,自 ...

  4. php env 函数不存在,PHP编程:探究Laravel使用env函数读取环境变量为null的问题

    <PHP编程:探究Laravel使用env函数读取环境变量为null的问题>要点: 本文介绍了PHP编程:探究Laravel使用env函数读取环境变量为null的问题,希望对您有用.如果有 ...

  5. Java读取环境变量

    读取环境变量时可以使用 System.getProperty 或 System.getenv 方法. System.getProperty 方法( JDK1.4 )用来读取针对 JVM 的属性,如程序 ...

  6. JAVA如何读取系统环境变量?

    环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径 ...

  7. java获取环境变量路径_Java读取系统环境变量的方法

    Java读取系统环境变量的方法 时间:2017-08-30     来源:华清远见JAVA学院 本文华清Java学院小编要和大家分享的是Java读取系统环境变量的方法,主要涉及到java读取系统环境变 ...

  8. C#+CodeSoft 根据Label模板打印标签

    环境:Windows 10,Visual Studio 2017,ASP.NET Mvc,CodeSoft 2018 写在前面: 1.需要安装CodeSoft,可以试用一个月或者100次,版本自己看着 ...

  9. [Python爬虫] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题

    最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下 ...

最新文章

  1. Spring Security 实战干货:客户端OAuth2授权请求的入口在哪里
  2. Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1
  3. 语言 双线性内插_合资插混间的实力较量,微蓝6 PHEV和卡罗拉双擎E+谁更值得选...
  4. TCollector
  5. Java ClassLoader getPackage()方法与示例
  6. oracle 的使用
  7. Producer API
  8. 基于单片机自行车自动防盗报警系统设计-基于单片机温度监测监控报警系统设计-基于单片机智能无线病床呼叫系统设计-基于单片机四路红外遥控开关电路设计【设计资料转发分享】
  9. 贪心——Berserk And Fireball
  10. 一个女性产品类的Magento模板
  11. 动手实现简易端口扫描器——PortScanner
  12. Android Studio Lint 工具看完这一篇还不够
  13. oracle 百分位数,Oracle分析函数PERCENTILE_CONT
  14. 30岁转行程序员晚了吗?分享30岁转行的经历
  15. Java中的继承与接口
  16. 程序员工作两年的经验
  17. (附源码)springboot车辆管理系统 毕业设计 031034
  18. php 操作 腾讯企业邮箱设置发邮件,纯代码实现WordPress使用腾讯企业邮箱发送邮件...
  19. 计算机应用技术081203 专业硕士,计算机应用技术专业081203-河南理工大学研究生处...
  20. windows wsl解决磁盘空间不够问题

热门文章

  1. git文件取消版本控制和撤销修改
  2. 开源协议比较(BSD,Apache,GPL,LGPL,AGPL,MIT)
  3. 开关电源和线性电源的优缺点
  4. python抓取网页视频
  5. 全志V3S裸机 SDRAM内存初始化(并使用SDRAM启动仿真)
  6. 今天给大家分享的是关于地理空间的数据分析
  7. 单一样本T检验实例(用统计软件SPSS16.0实现)
  8. 全国计算机信息高新技术考试
  9. CesiumJS 2022^ 源码解读[7] - 3DTiles 的请求、加载处理流程解析
  10. 关于在MFC使用PCL过程中的魔幻BUG