中琅条码打印软件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. 关于Redis缓存,这3个问题一定要知道!
  2. php date的警告
  3. [转][自勉]程序员困境:底层编码能力正逐步丧失
  4. 敲山震虎?继MongoDB之后,AWS又对Elasticsearch下手了
  5. Spring Security——根据请求Header[Accept]不同返回不同类型资源解决方案
  6. 槽点才是G点,LiveVideoStack主编是如何吐槽内容的?
  7. 配置Java EE应用程序或“将Bien付诸实践”
  8. JSONObject对象和JSONArray对象的使用
  9. android改变textview文字,如何在Android TextView中更改文本
  10. 2款手机黑科技APP,一个黑科技网站,请你低调使用
  11. 北理珠计算机与科学就业去向,2019届我国大学毕业生就业情况:计算机类专业领跑薪酬榜...
  12. 电脑自动关机后又自动开机怎么办
  13. c word to html 走样,打印机打印效果走样解决办法.pptx
  14. CMD专业 :taskkill :::强制结束各种进程---查询端口号及占用端口号等
  15. H.264基础知识总结
  16. CMake入门教程【手册篇】CMake生成与编译项目
  17. bga封装扇出过孔_Altium Designer BGA扇出
  18. 类似冒险岛这类游戏是用什么语言编写?或者说它的制作流程是什么?
  19. 广告效果不满意?试试互动广告!
  20. 页面跳转传参,A 页面跳转到B页面,把A页面获取的值传到B页面

热门文章

  1. Thymeleaf模板
  2. 【Python入门刷题】——NP10 牛牛最好的朋友们
  3. Nero9到底想干什么啊?
  4. 老司机写的大数据建模五步走
  5. PostgreSQL数据库复制——walsender后端启动
  6. [附源码]Python计算机毕业设计SSM基于Java的茶叶销售管理系统(程序+LW)
  7. FireFox被360主页劫持
  8. 07 JVM整体结构
  9. USBCNC简明教程
  10. 大学生计算机怎么挑,准大学生如何挑选笔记本?建议收藏!