2013-06-05 3 views
1

내 프린터는 Zebra ZM400 라벨 프린터이며 네트워크의 pc (USB에 연결됨) 중 하나에 연결되어 있습니다.Java를 사용하는 Zebra ZM400 인쇄

네트워크 및 인쇄 라벨을 통해 내 컴퓨터에서 라벨 프린터로 명령을 보내려고합니다.

네트워크에서 해당 프린터를 연결하고 Java 응용 프로그램의 레이블을 인쇄하는 방법은 무엇입니까?

나는 ZPL langauage를 사용해야한다는 것을 알고 있지만 어떻게 연결하고 라벨 프린터에 명령을 보내는 지 모르겠습니다.

가능합니까? 나는 구글에서 서핑을했지만 아직 샘플 코드를 찾을 수 없다. 편집

나는 norbi771의 방법을 사용 ..하지만이 명령을 보낼 때, 그냥 빈 ..

내 라벨의 크기는 3.25 "X 3.75"입니다 ..

이 나올 레이블에 대한 샘플 코드입니다.하지만 아무 것도 나오지 않습니다.

public class TestLabelPrinter { 

    /** 
    * @param args 
    */ 
    public static void printLabel(String label, String company, String docDate) { 
     try { 
      FileOutputStream os = new FileOutputStream("\\\\192.168.42.57\\zd"); 
      PrintStream ps = new PrintStream(os); 
      String commands = "^XA" + 
           "^LH30,30" + 
           "^F020,10^AD^FDZEBRA^FS" + 
           "F020,60^B3^FDAAA001^FS" + 
           "^XZ";  

      ps.println(commands); 
      ps.print("\f"); 
      ps.close(); 
     } catch (Exception e) { 
      // TODO: handle exception 
      e.printStackTrace(); 
     } 

    } 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     printLabel("label 12345", "Company name", "2013-05-10 12:45"); 
     System.out.println("Successful.."); 
    } 
+0

아직 인쇄 API를 찾지 못하셨습니까? –

+0

@ ThorbjørnRavnAndersen, 그들은 API를 제공합니까? 나는 아직 찾지 못했다. ZM400 (300 dpi)에 대한 API 지원? – Raymond

답변

4

아마도 가장 좋은 대답은 아니지만 최근에는 그랬습니다. 티. Windows와 함께 프린터를 PC에 연결했습니다. 그런 다음 프린터를 공유했습니다. 그럼 난 간단한 명령을 통해 LPT1에 매핑이 공유 프린터가 (이 모든 수행 할 수 있습니다 하나 하나 PC) : 지금이 LPT1 포트가 일명 파일입니다

net use \\pcname\sharedprinter LPT1: 

때문에 당신이 쓸 수 있습니다. 이제 JAVA에서 해당 파일에 데이터를 쓰면 정상적으로 작동합니다. 나는 그것을 알고 은 매우 우아 아니지만, 나를 위해 작동하고 나에게 몇 가지 PC를

public class EplPrint1 { 
      private final String port; 
      public EplPrint1(String port) { 
        this.port = port; 
      } 
      public void printLabel(String label, String company, String docDate) throws FileNotFoundException { 
        FileOutputStream os = new FileOutputStream(port); 
        PrintStream ps = new PrintStream(os); 
        String commands = "N\n" 
          + "A1,1,0,1,1,1,N,\""+asciiNormalize(company)+"\"\n" 
          + "A1,20,0,1,1,1,N,\""+asciiNormalize("Entry date")+": " + docDate+"\"\n" 
          + "B1,40,0,1,3,2,80,B,\""+label+"\"\n" 
          + "P1,1\n";  

        ps.println(commands); 
        ps.print("\f"); 
        ps.close(); 
      } 

      public static void main(String[] argv) throws FileNotFoundException { 
        //EplPrint1 p = new EplPrint1("d:\\tmp\\eplcommands.txt"); 
        EplPrint1 p = new EplPrint1("LPT1"); 
        //p.printLabel("23535.A.33.B.233445"); 
        p.printLabel("label 12345", "Company name", "2013-05-10 12:45"); 
      } 
    } 

제공하는 예는 EPL 인쇄를위한 공유 한 라벨 프린터를 사용할 수 있지만 ZPL 같은 방식으로 작동합니다.

+0

내 프린터가 USB ...와 연결되어 있습니다. 귀하의 코드에서'포트'는 어떤 포트입니까? 죄송합니다, 전 그냥 시작 ... – Raymond

+0

코드를 업데이트 했으므로 LPT1 인 포트를 선택할 수있는 생성자를 볼 수 있습니다 – norbi771

+0

프린터는 USB와 마찬가지로 광산입니다. 내 Windows 컴퓨터 이름은 nne6400입니다. 프린터를 설치했고 창 이름은 ZDesigner GK420t입니다. 그런 다음 PC에서 프린터를 공유했습니다. 공유에는 Zebra라는 이름이 부여됩니다. 이제 내 PC에서 명령 줄을 열고 간단히 다음과 같이 씁니다. 'net use \\ nne6400 \ ZEBRA LPT1' – norbi771

2

Zebra는 www.zebra.com/link에서 Java API를 제공합니다. 그것은 ZM400을 지원한다고 주장하지는 않지만 20 분 동안 살펴볼 가치가 있습니다. 지원되는 모든 프린터가 ZPL을 사용하기 때문에이 모델을 지원하지 않으면 놀랄 것입니다.

ZPL의 경우 FO20,60 직전에 네 번째 줄 앞에 캐럿 ^이 없습니다. 또한 글꼴 'D'를 사용하고 있습니다 (^ AD 명령에 표시됨). 먼저 기본 프린터 글꼴을 사용하려면 '0'(^ A0에서와 같이)으로 변경해야합니다. ZPL 설명서는 https://support.zebra.com/cpws/docs/zpl/zpl_manual.pdf에서 확인할 수 있습니다.

^XA 
^FO50,50 
^A0N,50,50 
^FD Hello World ^FS 
^XZ 
+0

당신의 도움에 감사드립니다. 나는 대답을 얻었습니다. :) – Raymond

0

가 얼룩말의 웹 사이트에 따르면, ZM400 동시에 ZPL 또는 EPL 아니라 모두를 지원하거나 펌웨어를 실행합니다 유의 사항 : 여기에 빠른 안녕하세요 세계 예입니다. 직접 자바에 ZPL을 생성하는 도움을 필요로하는 사람들을 위해

https://km.zebra.com/kb/index?page=content&id=SO8156&actp=LIST

1

, 나는 유틸 라이브러리를합니다.

https://github.com/w3blogfr/zebra-zpl

+0

도서관에서 이미지를 지원합니까? –

+0

이 라이브러리는 텍스트 및 바코드와 같은 레이블 및 기본 명령을 작성하는 데 도움을줍니다. 그러나 컨트롤을 유지하면 라이브러리에는 아직 지원되지 않는 원시 zpl에 대한 ZebraNativeZpl 메소드가 있습니다. – Thibaut

0

당신은 단순히 javax.print의와 ZPL 라벨을 인쇄 할 수 있습니다.USB 또는 네트워크를 통해 연결되어 있는지 여부는 중요하지 않습니다.

http://docs.oracle.com/javase/7/docs/api/javax/print/package-summary.html

는 AUTOSENSE에 이름으로 프린터 설정의 DocFlavor를 조회 SimpleDoc는로 ZPL-라벨을 넣고 작업을 인쇄 할 수 있습니다.

관련 문제