转载:http://www.zuidai和ma.com/blog/2793091475983360.htm

www.zuidai ma.com居然是违禁字符,我也是醉了,所以在www.zuidai后面加一个和字。

曾经公司的项目  让我弄个一个二维码的打印 客户要求选择博思得品牌打印机  我试过调用java里面的打印机的api 可惜打印机可以运行了  但是打印不出图片 我也研究很多关于打印的东西 发现还是不行 后来找到他们技术 他们推荐我使用c/s 调用他们提供的dll

可是我发现还是出现问题  到最后我才发现原来他们的打印机只支持单色的bmp格式图片 然后我只能把图片先转成bmp 终于成功了 。 我使用的是JNative的包

下面提供下代码给大家参考下:

import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;

public class javaDll {

/**
     * @param args
     *对于各个方法没做进一步的处理,只是抛异常而已。
     *执行Main函数可正常打印一张图片
     */
    static final String DLL_FILE = "D:\\CDFPSK.dll";
    public String OpenPort(int xx) throws NativeException,
            IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "OpenPort");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
        jn_handler.setParameter(0, xx);
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
    }
    public String SetPCComPort(int BaudRate,boolean HandShake) throws NativeException,
            IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "SetPCComPort");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
   }
    
    public String GetErrState() throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "GetErrState");
        jn_handler.setRetVal(Type.VOID); // 指定返回参数的类型
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    
    public String PTK_GetInfo() throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_GetInfo");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    public String PTK_DrawTextTrueTypeW(int x,int y,int FHeight,int FWidth,String FType,int Fspin,int FWeight,int FLtatlic, int  FUnline, int FStrikeOut,String id_name, String data ) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_DrawTextTrueTypeW");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
        jn_handler.setParameter(0, x);
        jn_handler.setParameter(1, y);
        jn_handler.setParameter(2, FHeight);
        jn_handler.setParameter(3, FWidth);
        jn_handler.setParameter(4, FType);
        jn_handler.setParameter(5, Fspin);
        jn_handler.setParameter(6, FWeight);
        jn_handler.setParameter(7, FLtatlic);
        jn_handler.setParameter(8, FUnline);
        jn_handler.setParameter(9, FStrikeOut);
        jn_handler.setParameter(10, id_name);
        jn_handler.setParameter(11, data);
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    public String PTK_PrintLabel(int number,int cpnumber) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_PrintLabel");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
        jn_handler.setParameter(0, number);
        jn_handler.setParameter(1, cpnumber);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    public String PTK_BmpGraphicsDownload(String pxname,String pypath,int iDire) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_BmpGraphicsDownload");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
        jn_handler.setParameter(0, pxname);
        jn_handler.setParameter(1, pypath);
        jn_handler.setParameter(2, iDire);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    public String PTK_BinGraphicsDownload(String pxname,String pbyte ,int iDire,char[] buff) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_BmpGraphicsDownload");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
        jn_handler.setParameter(0, pxname);
        jn_handler.setParameter(1, pbyte);
        jn_handler.setParameter(2, iDire);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    public String PTK_DrawPcxGraphics(int px,int py,String name) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_DrawPcxGraphics");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
    
        jn_handler.setParameter(0, px);
        jn_handler.setParameter(1, py);
        jn_handler.setParameter(2, name);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    public String PTK_PcxGraphicsDel(String pid) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_PcxGraphicsDel");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
    
        jn_handler.setParameter(0, pid);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    public String PTK_RWRFIDLabel(int a,int b,int c,int d,int f,String ff) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_RWRFIDLabel");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
    
        jn_handler.setParameter(0, a);
        jn_handler.setParameter(1, b);
        jn_handler.setParameter(2, c);
        jn_handler.setParameter(3, d);
        jn_handler.setParameter(4, f);
        jn_handler.setParameter(5, ff);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }

public String PTK_SetLabelHeight(int height,int gapH) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_SetLabelHeight");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
    
        jn_handler.setParameter(0, height);
        jn_handler.setParameter(1,gapH);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }

public String PTK_SetLabelWidth(int width) throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "PTK_SetLabelWidth");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
    
        jn_handler.setParameter(0, width);
        
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    public String ClosePort() throws NativeException,
    IllegalAccessException {
        JNative jn_handler = null;
        jn_handler = new JNative(DLL_FILE, "ClosePort");
        jn_handler.setRetVal(Type.INT); // 指定返回参数的类型
    
        jn_handler.invoke(); // 调用方法
        return jn_handler.getRetVal();
        }
    
    
    
    public static void main(String[] args) throws NativeException, IllegalAccessException {
        // TODO Auto-generated method stub
        System.out.println(new javaDll().OpenPort(255));
//        System.out.println(new javaDll().PTK_DrawTextTrueTypeW (30,35,24,0,"宋体",4,400,0,0,0,"A1","机要绝密"));
        System.out.println(new javaDll().PTK_SetLabelHeight(-300,24));
        System.out.println(new javaDll().PTK_SetLabelWidth(0));
        //System.out.println(new javaDll().PTK_RWRFIDLabel(1,0,2,12,1,"123131312312"));
    
        System.out.println(new javaDll().PTK_PcxGraphicsDel("Bag"));
        System.out.println(new javaDll().PTK_BmpGraphicsDownload("Bag","D:\\001.bmp",0));//将一张图片打印
        System.out.println(new javaDll().PTK_DrawPcxGraphics(0,30,"Bag"));
        System.out.println(new javaDll().PTK_PrintLabel(1,1));
        
//        System.out.println(new javaDll().SetPCComPort(9600, true));
//        System.out.println(new javaDll().PTK_GetInfo());
        
        
    
    }

}

转载于:https://www.cnblogs.com/gwq369/p/5337584.html

java调用博思得打印机的心得相关推荐

  1. Java调用小票打印机(型号TM-288B)打印小票 (上)

    Java调用小票打印机(型号TM-288B)打印小票 (上) 项目需求需要用Java调用小票打印机打印小票,网上查了很多资料然后慢慢调试最后算成功了 本地安装小票打印机驱动 根据自己的型号下载驱动(此 ...

  2. JAVA调用TSC打印机打印标签(二维码,数据等)超详细!!

    本文打印机型号: TSC MA3400P 后端调用tsc打印机是通过DLL来进行调用的,首先你需要两个TSC文件直接复制到项目目录下边即可 可以直接去官网下载:https://www.chinatsc ...

  3. java调用默认打印机,打印小票(80mm)

    一.默认打印机工具类 package vpos.zs.print;import net.sf.json.JSONObject;import java.util.Map; import java.uti ...

  4. java调用默认打印机打印发货标签

    效果: 实现:主入口 public static void main(String[] args) {//获取默认的打印机PrintService defaultPrint = PrintServic ...

  5. java 调用博思得条码打印机

    效果:  打印文字.二维码.图片 准备工作: 1).JNative(JNative.jar.JNativeCpp.dll) 2).博思得dll文件(CDFPSK.dll)和API文档 import o ...

  6. java 调用TSC打印机

    JNA 依赖 <dependency><groupId>com.sun.jna</groupId><artifactId>jna</artifac ...

  7. Java调用TSC打印机进行打印

    最近项目中用到了打印机,最开始的完全不懂,现在弄好了,所以做了总结,该篇包括后台的调用打印(两种方式)跟前端的js的打印,但是只有IE现在支持打印,而且如果想远程连接打印机,二维码的生成和直接由打印机 ...

  8. JAVA调用小票打印机

    因公司开发需求,需要用到打印机打印彩票投注单,所以要用到小票打印机.小票打印机是SNBC新北洋. 这个类型的打印机可以连接安卓设备,也可以连接电脑主机.我采用的是连接电脑主机进行打印. 1.将打印机连 ...

  9. java调用hp打印机驱动_惠普打印机驱动修改JDK问题–现象:javac不能用了 | 学步园...

    机器上安装有JDK,然后在其上安装hp LaserJet 1300 PCL 6的驱动程序,一切正常,可以打印,也可以用javac编译文件. 重新启动机器后,发现javac不能用了,提示为:Error: ...

最新文章

  1. MYSQL5.7 忘记ROOT密码/初始化ROOT密码
  2. 规模、性能、弹性全面升级,让天下没有难用的 K8s
  3. calayer 与uiview
  4. Weblogic 节点启动
  5. 如何删除下一页分节符_word 2010高级应用:分节符的使用
  6. Sybase常用配置参数
  7. io口模拟串口 1602显示数据位内容[转]
  8. 【MapReduce】编程指导思想
  9. 某人说自己是佛菩萨转世,什么情况下才可信
  10. ibus五笔快捷键 繁简 单字 词组切换
  11. 企业微信文件会过期吗?
  12. iOS中播放音乐和音效
  13. 深入分析Java中的length和length()
  14. Linux 下修改时间和时区
  15. 【转】在内核中之获取HKEY_CURRENT_USER对应路径
  16. C#窗体程序随电脑分辨率自动调整大小
  17. 反向代理-- WEB服务的加速器[转]
  18. 基于Bert论文构建Question-Answering模型
  19. 苹果手机计算机网络设置,苹果手机上网速度慢怎么办!手把手教你如何解决
  20. hdu 1677 Nested Dolls 子串

热门文章

  1. 计算方法 | 如何证明向量的无穷范数是p范数
  2. springboot整合security,mybatisPlus,thymeleaf实现登录认证及用户,菜单,角色权限管理
  3. 打击“老赖” 大数据可以更给力
  4. [CentOS] 三、安装 i3
  5. python urlopen函数的timeout_urllib.request.urlopen()函数详解
  6. 准备学python用什么电脑_准的解释|准的意思|汉典“准”字的基本解释
  7. C++大数相乘(高精度乘法)
  8. 【C++演示】编程语言的true、false和1、0之间的相互转化
  9. c++ true和1的区别
  10. git 怎么切换分支命令_git 项目切换分支 命令