❶ 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);
}
}
❷ 怎麼用java調用條碼列印機
上海啟邦條碼列印機工程師馬天宇回答你:
編程控制條碼列印機的有三種方式:1,直接使用條碼列印機的驅動程序,把它當成普通列印機使用。條碼可以使用條碼字體或圖形方式列印。2,使用條碼列印機語言(腳本)直接送到列印機的埠,如並口,網口或usb口。 3,調用第三方軟體,由第三方軟體對列印機進行控制,標簽模板的編輯等。你只需調用它並傳輸數據即可。
❸ 我看到你提問了java生成條形碼的問題,請問你是用什麼生成的我現在也有這個問題
public static final int height = 226 + 2 * border; // 8cm + border
public static final int width = 212 + 2 * border; // 7.5cm + border
private static final int rate = 3; // 條碼寬條與窄條寬度之比
private static int m_nNarrowWidth = 10; // 窄條的寬度像素數
private static int m_nImageHeight = 250; // 條碼的高度像素數
// =========添加條形碼begin===================
Barcode128 barcode128 = new Barcode128();
String strCodes = shipment.getPostalReferenceNo();
barcode128.setCode(strCodes);
int nImageWidth = (strCodes.length() * (3 * rate + 7) * m_nNarrowWidth);
java.awt.image.BufferedImage bufferedImage = new BufferedImage(
nImageWidth, m_nImageHeight + 13, BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) bufferedImage.getGraphics();
g.fillRect(0, 33, nImageWidth, 13);
java.awt.Image codeImg = barcode128.createAwtImage(Color.black,
Color.white);
g.drawImage(codeImg, 0, 0, nImageWidth, m_nImageHeight, null);
g.setColor(Color.BLUE);
g.dispose();
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", os);
Image img1 = Image.getInstance(os.toByteArray());
img1.setAlignment(Image.ALIGN_CENTER);
你試試
❹ 如何用JAVA調用TLP條碼列印機列印條碼
一般來說條碼列印機都有自己專門的DLL介面文件,不需要調用系統的Dll。
如果是支持介面開發,肯定會有DLL的說明文檔。那麼按照文檔調用DLL的方法就可以了。不同的列印機介面方法不一樣,所以沒有現成的代碼。
java 和 DLL 交互的話可以使用 JNative 包,比較方便。
首先 System.loadLibrary(dllName);
public Integer executeFunction(String dllName ,String functionName,Object[] params){
try {
JNative func = new JNative(dllName, functionName);
func.setRetVal(Type.INT);
for(int i=0;i<params.length;i++){
if(params[i] instanceof String)
func.setParameter(i, (String)params[i]);
else if(params[i] instanceof Integer)
func.setParameter(i, ((Integer)params[i]).intValue());
else if(params[i] instanceof Pointer)
func.setParameter(i, (Pointer)params[i]);
else if(params[i] instanceof Boolean)
func.setParameter(i,Type.INT, params[i].toString());
else if(params[i] instanceof byte[])
func.setParameter(i, Type.PSTRUCT,(byte[])params[i]);
}
func.invoke();
return func.getRetValAsInt();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
調用的時候傳dll名,函數名,和介面參數,詳細的可以去了解一下。
❺ java 怎麼調用到條碼列印機!
編程式控制制條碼列印機的有三種方式:1,直接使用條碼列印機的驅動程序,把它當成普通列印機使用。條碼可以使用條碼字體或圖形方式列印。2,使用條碼列印機語言(腳本)直接送到列印機的埠,如並口,網口或usb口。 3,調用第三方軟體,由第三方軟體對列印機進行控制,標簽模板的編輯等。你只需調用它並傳輸數據即可。
目前條碼列印機品牌還是以進口為主,比如美國的斑馬,霍尼韋爾(收購了intermec),Datamax,日本的東芝,台灣TSC等。
國產的主要有3家,以威海北洋、深圳博思和上海啟邦為主。
這些列印機基本都支持以上三種調用方式。
❻ 怎麼樣用java生產ITF條形碼。。
Barcode4J由Java語言編寫而成,可以靈活的生成條形碼。它採用Apache License V2.0許可,這使得它很容易在商業中被使用。它可以讓您生成各種流行的一維和二維條碼,包括DataMatrix 和 PDF417。以各種格式輸出,包括SVG, EPS, bitmaps和Java2D,同樣也可根據您的需要添加自己的輸出格式。它為各種應用提供了插件,包括最重要的Apache FOP(格式對象處理器)。
❼ 如何使用java在控制台輸出條形碼求源代碼
public class Hello
{
public static void main(String args[])
{
System.out.println("hello world!");
}
}
把這段代碼保存為Hello.java文件然後編譯執行就可以了。
❽ java TSC 條碼列印亂碼,何故
沒有用你這種方式列印過,我平時列印的條碼用的是單機版的條碼軟體,在電腦上安裝之後,電腦正常連接列印,然後打開軟體在電腦裡面設置條形碼之後,再連接列印機列印就可以了,不是在線打的,單擊版的這個條碼軟體支持的條碼類型還挺多的,幾乎現在市面上的條碼類型都支持
❾ java如何驅動條形碼列印機並能實現WEB列印
參考 javax.print.*
大致過程是這樣的:
寫一個servlet,專門實現列印服務
這個servlet內是這樣處理的:
1.獲取列印機對象printer
通過枚舉 PrintService printservices[] = PrintServiceLookup.lookupPrintServices(...)
2.生成DocPrintJob job=PrintService.createPrintJob();
3.生成文檔 Doc doc = new SimpleDoc(...);
需要3個參數
第一個是列印的數據,可以根據條碼,生成一幅圖像,然把圖像作為輸入流,作為第一個參數
第二個參數用一個 DocFlavor.INPUT_STREAM 對象
DocFlavor類有相應的靜態變數,你根據圖像的mime類型選擇
第三個參數是一個DocAttributeSet對象
4.列印
job.print(doc, pras);
這是我以前寫的練習:
-----------------------------------------------------------------------
package printtest;
import java.io.*;
import javax.print.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class Application1
{
public static void test(String code)
{
try{
DocFlavor flavor=DocFlavor.INPUT_STREAM.JPEG;
//get a printer
PrintService[] printers=PrintServiceLookup.lookupPrintServices( flavor, null);
for( int i=0; i<printers.length; i++ ) System.out.println( printers[i].getName());
PrintService printer=printers[0];
//job
DocPrintJob job=printer.createPrintJob();
//document
BufferedImage img=new BufferedImage( 400,300, BufferedImage.TYPE_USHORT_555_RGB );
Graphics g=img.getGraphics();
g.drawString(code, 100,100);
ByteArrayOutputStream outstream=new ByteArrayOutputStream();
ImageIO.write( img, "jpg", outstream);
byte[] buf=outstream.toByteArray();
InputStream stream=new ByteArrayInputStream(buf);
Doc doc=new SimpleDoc(stream,flavor,null);
//print
job.print(doc, null);
}
catch(Exception e)
{
e.printStackTrace();
}
}
//Main method
public static void main(String[] args)
{
test("12345");
}
}
❿ java代碼如何調用DL-888B列印機列印條形碼
要是用列印機列印條形碼的話,也可以不用Java代碼的,除非你是這方面的專業的人員,要不這個還真搞不來,我一般列印條形碼用的是一個條形碼列印軟體,它用的是哪種通用驅動,幾乎對所有的列印機都能了連接列印的。
在這個軟體裡面繪制條形碼,然後添加內容,並列印出來,而且現在專業的條形碼列印軟體支持多種類型的資料庫導入,可以實現那種有多少個條碼數據都能一次生成,而且可以批量列印出來,非常的方便。