中琅条码打印软件SDK C#调用

1.新建项目
完成

2.复制sdk中的dll等文件到对应的位置

然后打开他们的sdk把这个文件放你项目目录下面我新建了一个DLL文件夹在项目路径下


在你的项目里面添加两个cs文件一个叫LabelPainter_SDK_Wrapper另外一个叫JaggedArrayMarshaler,只要改LabelPainter_SDK_Wrapper.cs中的文件就行了,记得改dll文件路径哦
LabelPainter_SDK_Wrapper.cs如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;namespace PointDemo
{public class LabelPainter_SDK_Wrapper{/// <summary>/// SDK File Name 下面的路径改成你自己的/// </summary>private const string dllName = "../../../DLL\\Bin\\LabelPainter_SDK.dll";[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_InitializationM(string programDir);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_ReleaseM();[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OpenDocM(string filePath, string password);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_CreateDocM(double paperWidth, double paperHeight);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_CloseDocM(int docId);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SaveDocM(int docId, string filePath);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SaveLabelImageM(int docId, string savePath);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SetLayoutM(int docId, double marginTop, double marginRight, double marginBottom, double marginLeft, int numberOfRows, int numberOfColumns, double labelWidth, double labelHeight, double labelSpanH, double labelSpanV, int feedDirection);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_InsertLineM(int docId, double[] pointXs, double[] pointYs, int pointCount, double lineWidth, int lineStyle, int lineColor, int lineType);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_InsertPolygonM(int docId, double[] pointXs, double[] pointYs, int pointCount, double lineWidth, int lineStyle, int lineColor, int fillColor, double angle);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_InsertTextM(int docId, double x, double y, double width, double height, string text, int textMode, bool isMirror, string fontName, double fontSize, int fontStyle, int fontColor, int alignment, double wordSpacing, double rowSpacing, double angle);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_InsertBarcodeM(int docId, double x, double y, double width, double height, string data, string textFormat, int barcodeType, int codePage, double moduleWidth, bool optimize, bool isMirror, int barColor, int backgroundColor, string fontName, double fontSize, int fontStyle, int fontColor, int alignment, double wordSpacing, double angle);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_InsertImageM(int docId, double x, double y, double width, double height, string imagePath, int scaleType, double angle);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_DeleteShapeM(int docId, int shapeId);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SetShapeDataM(int docId, int shapeId, string data);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_GetShapeListM(int docId, ref string shapeListStr, int bufferLen);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_GetTotalPagesM(int docId);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_GetPageSizeM(int docId, int xDPI, int yDPI, ref int width, ref int height);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SetPageRangeM(int docId, int startPage, int endPage);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_GetDatabaseM(int docId, ref string database, int bufferLen);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OutputToPrinterM(int docId, string printer, string txtFile, int startPage, int endPage, bool isCustomOutput);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OutputToPDFM(int docId, string savePath, int pagesPerBatch, bool useCMYK, bool textOutline, string txtFile, int zipLevel, int startPage, int endPage, bool isCustomOutput);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OutputToPPMLM(int docId, string savePath, int pagesPerBatch, bool useCMYK, bool textOutline, string txtFile, int zipLevel, int startPage, int endPage, bool isCustomOutput);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_outputToTIFFM(int docId, string savePath, int pagesPerBatch, string txtFile, int zipLevel, int dpi, int startPage, int endPage, bool isCustomOutput);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OutputToImageM(int docId, string saveDir, int extType, int dpi, string txtFile, int startPage, int endPage, bool isCustomOutput);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SetRIPReadCallbackM([MarshalAs(UnmanagedType.FunctionPtr)] pRIPReadFunM RIPReadFun);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SetRGBReadCallbackM([MarshalAs(UnmanagedType.FunctionPtr)] pRGBReadFunM RIPReadFun);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OutputToRIPM(int docId, int startPage, int endPage, int xDPI, int yDPI, int colorCount, int colorDepth, int threshold, bool isCustomOutput);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OutputToRGBM(int docId, int startPage, int endPage, int xDPI, int yDPI, bool isCustomOutput);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_OutputToRasterizerM(int docId, string saveDir, int extType, int dpi, string prefix, string suffix, string xlsFile);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_PdfToolM(string saveDirOrPath, string file1, string file2, int actionType, bool maximumPages, bool pagePad, int pagesPerBatch);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_SetDataCustomM(int outputId, int shapeId, string data);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_StartOutputCustomM(int outputId);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern bool ZL_IsOutputingM(int outputId);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_StopOutputM(int outputId);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_GetDogIDM(ref string dogId, int bufferLen);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_ReadDogM(ref byte[] buffer, int bufferLen);[DllImport(dllName, CallingConvention = CallingConvention.StdCall)]public static extern int ZL_WriteDogM(byte[] buffer, int bufferLen);}[UnmanagedFunctionPointer(CallingConvention.StdCall)]public delegate void pRIPReadFunM(int outputId, byte[][] ripData, int[][] dataInfo, int dataCount, int imageWidth, int pageIndex, string cnt, int effectPts);[UnmanagedFunctionPointer(CallingConvention.StdCall)]public delegate void pRGBReadFunM(int outputId, byte[] ripData, int ripDataLen, int imageWidth, int imageHeight, int pageIndex, string cnt);}

JaggedArrayMarshaler.cs如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;namespace PointDemo
{class JaggedArrayMarshaler : ICustomMarshaler{static ICustomMarshaler GetInstance(string cookie){return new JaggedArrayMarshaler();}GCHandle[] handles;GCHandle buffer;Array[] array;public void CleanUpManagedData(object ManagedObj){}public void CleanUpNativeData(IntPtr pNativeData){buffer.Free();foreach (GCHandle handle in handles){handle.Free();}}public int GetNativeDataSize(){return 4;}public IntPtr MarshalManagedToNative(object ManagedObj){array = (Array[])ManagedObj;handles = new GCHandle[array.Length];for (int i = 0; i < array.Length; i++){handles[i] = GCHandle.Alloc(array[i], GCHandleType.Pinned);}IntPtr[] pointers = new IntPtr[handles.Length];for (int i = 0; i < handles.Length; i++){pointers[i] = handles[i].AddrOfPinnedObject();}buffer = GCHandle.Alloc(pointers, GCHandleType.Pinned);return buffer.AddrOfPinnedObject();}public object MarshalNativeToManaged(IntPtr pNativeData){return array;}}
}

3.设置debug输出为x64,然后重新生成解决方案


运行成功,初始化成功

如果QT调试成功的话我就再出一篇文档吧,希望能帮助到你,我是小华如果有帮助麻烦给我点个赞谢谢您。

中琅条码打印软件SDK C#调用相关推荐

  1. excel数据库_中琅条码打印软件数据库连接详解

    用过中琅条码打印软件的小伙伴都知道软件多种数据库类型,比如TXT.Excel,MySQL,Access,SQLServer,MySQL,Oracle,CSV,Sybase,DB2,SQLite,DBF ...

  2. 中琅条码打印软件如何制作条形码

    条形码是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符,条形码如今在市场上的重要性可以说是不言而喻,我们在超市中最常见到的就是EAN13商品条码,还有code128以 ...

  3. 中琅条码打印软件如何批量打印单色黑流水号

    中琅条码打印软件是一款专业的可变数据打印软件,支持批量打印流水号,条形码二维码等各种各样的标签,而单色黑是在四色印刷模式中(CMYK),其中C:0,M:0,Y:0,K:100,K就是代表黑色,其他都为 ...

  4. 中琅条码打印软件之如何导出条形码或二维码矢量文件到Coredraw

    通过Coredraw进行矢量设计的时候,我们经常会用到条形码和二维码,虽然可以生成一个条码或者二维码,但是约束比较多,有的时候设计出来的条码识别度等级达不到A级,其实大家完全可以先在条码打印软件中设计 ...

  5. ai怎么生成条形码_中琅条码生成软件如何制作SCC-14条码

    SCC-14不是一种标准的条码类型,没有正式的条码码制,SCC-14的全称是Shipping Container Code,即集装箱运输代码,其编码长度为14位.SCC-14本身就是ITF-14条码或 ...

  6. 中琅条码标签打印软件中打印设置中的相关问题

    在日常使用中琅条码标签打印软件时,部分用户经常在打印数量上出错犯糊涂,不知道中琅软件中的标签数量和标签份数两者具体有什么区别,导致在打印过程中出现一系列错误.今天就来详细介绍一下中琅条码标签打印软件的 ...

  7. 中琅标签打印软件如何制作表格

    在平时的工作中,会遇到各种各样的产品或者流程需要制作标签,比如样品标签.出货标签.商品价签.固定资产标签等等,标签上一般都会有不同样式的表格标签模板,今天我们就中琅标签打印软件来看一下标签模板上的表格 ...

  8. 条码打印软件如何同时调用多个数据库

    随着标签印刷行业的发展,使用数据库导入实现批量打印可变数据的效果是使用率最高的一种,在平时的数据库导入批量打印时,导入一个数据库的情况比较多,那么如果需要导入多个数据库该如何操作呢?下面我们就来详细看 ...

  9. bootstraptable设置行高度_条码打印软件中不干胶卷纸的标签设置方法

    条码打印软件中的标签设置是根据打印机中的实际标签纸的情况进行设置的,不同的标签纸有不同的设置方法(如A4的平张纸,或者单排.双排.多排的不干胶卷纸都有相对的设置方法).今天就用中琅条码打印软件给大家演 ...

最新文章

  1. Windows 7 安装和搜索更新缓慢的解决,新装机常见问题
  2. 工具dumpbin.exe
  3. 基于形态学操作提取水平和垂直线条(五线谱中音符和乐谱线的分离)
  4. Android开发学习笔记:Gallery和GridView浅析
  5. 数组 ——求出一组数的最大值(用数组实现)
  6. Spring-学习笔记06【Spring的新注解】
  7. idea The origin server did not find a current representation for the target resource or is not willi
  8. DataGridView 写入到EXCEL
  9. lua 字符串分割_Lua函数式编程(中)
  10. java maven导入导出_Java +EasyUI+SpringMvc实现Excle导入导出(上)
  11. 如何防止网页Demo被那些赖账的客户盗用
  12. 第一百三十一节,JavaScript,封装库--CSS
  13. Linux 基本命令(自学笔记)
  14. [No0000174]Spring常用注解(收藏大全)
  15. JavaScript高级程序设计 总结(一)详细版
  16. 头条号个人中心登录_注册登录系统
  17. python客户端_python客户端编程
  18. vue中将html页面转为图片并且下载该图片
  19. 环境变量用来保存java虚拟机_____环境变量用来存储Java的编译和运行工具所在的路径,而____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。(填英文)...
  20. python 中文姓名库_中文人名语料库。中文姓名,姓氏,名字,称呼,日本人名,翻译人名,英文人名。...

热门文章

  1. 微信开发者工具进入页面卡死
  2. 事务(Transaction)简述
  3. Linux中cinder的作用,openstack之dashboard与cinder(一)
  4. 【无标题】模电仿真实验
  5. c语言null和nullptr,nullptr和NULL
  6. 左连接,右连接,内连接,全连接的区别及使用
  7. linux-安全加固(三)
  8. java实现二叉树的后序遍历_二叉树前序中序后序遍历(Java实现)
  9. 简单使用OpenGauss数据库
  10. 点积、叉积、内积、外积【汇总对比】