当前位置:首页 » 编程语言 » java调用打印机

java调用打印机

发布时间: 2023-08-09 03:53:04

‘壹’ java如何调用TSC打印机进行打印详解

给你介绍一种后台打印方法枣厅:亮散

使用javax中的PrintServiceLookup类进行打印,可以直接调用默认的打印机,也可以使用下列的方敬岩氏法进行筛选打印:

PrintServiceLookup.lookupMultiDocPrintServices(flavors, attributes);

可执行代码如下:

‘贰’ 如何用Java调用打印机打印docx,PDF文档

具体步骤如下:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.swing.JFileChooser;

public class PrintDemo {

public static void main(String[] args) {
JFileChooser fileChooser = new JFileChooser(); // 创建打印作业
File file = new File("f:/111.txt"); // 获取选正仿择的文件
// 构建打印请求属性集
HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
// 设置打印格式,因为未确定类型,核桐所以选择autosense
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
// 定位默认的打印服务
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
InputStream fis = null;
try {
DocPrintJob job = defaultService.createPrintJob(); // 创建打印作业
fis = new FileInputStream(file); // 构造待打举氏纤印的文件流
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

‘叁’ java 怎么调用到条码打印机!

编程控制条码打印机的有三种方式:1,直接使用条码打印机的驱动程序,把它当成普通打印机使用。条码可以使用条码字体或图形方式打印。2,使用条码打印机语言(脚本)直接送到打印机的端口,如并口,网口或usb口。 3,调用第三方软件,由第三方软件对打印机进行控制,标签模板的编辑等。你只需调用它并传输数据即可。

目前条码打印机品牌逗搜还是以进口为主,比如美者源国的斑马,霍尼韦尔(收购了intermec),Datamax,日本的东芝,台湾TSC等。
国产的主要有3家,以威海北洋、深圳博思和上首指态海启邦为主。
这些打印机基本都支持以上三种调用方式。

‘肆’ java调用本地打印机实现打印PDF文件,怎么做

使用老培岁虚拟打印机pdf factory即可实现,而且其侍睁他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用,一劳中碧永逸。

‘伍’ 如何通过JAVA代码调用网络打印机使其打印接收到的文件

用java实现本地打印:java.awt中提供了一些打印的API,要实现打印,首先要获得打印对象,然后继承Printable实现接口方法print,以中桥便掘培物打印机进判液行打印,最后用用Graphics2D直接输出直接输出。下面代码实现了简单的打印功能:

‘陆’ java怎么连接Gprinter条形码打印机

条形码打印机型号不同,不过思路都是一样的,以下可参考,另外需要你自己参考你的条形销弯谨码打印机的接口说明。

因项目需要,对Godex EZ2300条码机进行调用打印, 驱动为Ez2000.dll, 用JNI可以实现调用,但比较麻烦, 需

要用到VC6进行DLL封装,改用JNative组件进行亏基调用, 步骤如下:

1. 下载JNative-1.3.2.zip组件库

2. 解压出来后有JNative.jar / JNativeCpp.dll / libJNativeCpp.so三个文件,JNative.jar
置于%JAVA_HOME%/jre/lib/ext目录下, JNativeCpp.dll置于%SYSTEM%/WINDOWS/SYSTEM32目
录下

3.将Ez2000.dll置于%SYSTEM%/WINDOWS/SYSTEM32目录以及%JAVA_HOME%/jdk/bin目录下

4.

具体Java代码如下:

package com.athens.test;

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

public class Demo {

private static final String PRINTER_DLL = "Ez2000.dll";

public static void main(String [] args) {
Demo demo = new Demo();
System.loadLibrary("Ez2000");
JNative n = null;
try {
n = demo.getJNativeByFunction("isready");
n.setRetVal(Type.INT);
// n.setParameter(1, Type.VOID, "");
n.invoke();
Integer isready = Integer.parseInt(n.getRetVal());
if(isready == 1){

System.out.println("条码机可以开始接收资料闹迹!Starting...");
System.out.println("Starting...");
// 打开端口
n = demo.getJNativeByFunction("openport");
n.setParameter(0, Type.STRING, "0");
n.invoke();

// 设定参数
n = demo.getJNativeByFunction("setup");
n.setRetVal(Type.INT);
n.setParameter(0, Type.INT, "30");
n.setParameter(0, Type.INT, "7");
n.setParameter(0, Type.INT, "2");
n.setParameter(0, Type.INT, "1");
n.setParameter(0, Type.INT, "0");
n.setParameter(0, Type.INT, "0");
n.invoke();

// 发出指令
n = demo.getJNativeByFunction("sendcommand");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "W70");
n.invoke();

n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "^P1");
n.invoke();

n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "^L");
n.invoke();

n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "AC,20,60,1,1,1,0,TEST");
n.invoke();

// 发送条形码
n = demo.getJNativeByFunction("ecTextOut");
n.setParameter(0, Type.INT, "20");
n.setParameter(1, Type.INT, "10");
n.setParameter(2, Type.INT, "34");
n.setParameter(3, Type.STRING, "标楷体");
n.setParameter(4, Type.STRING, "Athens Testing Successlly!!!");
n.invoke();

// 发出指令
n = demo.getJNativeByFunction("sendcommand");
n.setRetVal(Type.INT);
n.setParameter(0, Type.STRING, "E");
n.invoke();

// 关闭端口
n = demo.getJNativeByFunction("closeport");
n.invoke();
System.out.println("Ending...");
}else{
System.out.println("条码机无法接收资料!");
}
}catch(Exception e){
e.printStackTrace();
}finally{
if (n != null){
try {
n.dispose();
} catch (NativeException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}

// 通过方法名取得JNative对象
public JNative getJNativeByFunction(String functionName) throws NativeException{
return new JNative(PRINTER_DLL, functionName);
}
}

热点内容
逍遥安卓在哪里下载的视频 发布:2025-02-06 10:50:42 浏览:876
上编程序 发布:2025-02-06 10:49:08 浏览:795
会议源码 发布:2025-02-06 10:47:09 浏览:92
phpeclipse断点 发布:2025-02-06 10:47:02 浏览:360
脚本之家知网收录吗 发布:2025-02-06 10:39:08 浏览:770
昵称与密码的意思是什么 发布:2025-02-06 10:27:38 浏览:671
服务器没密码怎么办 发布:2025-02-06 10:27:36 浏览:206
宝塔面板阿里云服务器伪静态 发布:2025-02-06 10:24:50 浏览:342
android输入框限制 发布:2025-02-06 10:24:47 浏览:398
阿里云新购服务器备案 发布:2025-02-06 10:22:05 浏览:982