![JAR search and dependency download from the Maven repository](/logo.png)
fr.w3blog.zpl.utils.ZebraUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of zebra-zpl Show documentation
Show all versions of zebra-zpl Show documentation
Java Api for Zepra Zpl generator
package fr.w3blog.zpl.utils;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.List;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.PrintServiceAttribute;
import javax.print.attribute.standard.PrinterName;
import fr.w3blog.zpl.model.ZebraLabel;
import fr.w3blog.zpl.model.ZebraPrintException;
import fr.w3blog.zpl.model.ZebraPrintNotFoundException;
/**
* Utilities to print zpl
*
* @author ttropard
*
*/
public class ZebraUtils {
/**
* Function to print code Zpl to network zebra
*
* @param zpl
* code Zpl to print
* @param ip
* ip adress
* @param port
* port
* @throws ZebraPrintException
* if zpl could not be printed
*/
public static void printZpl(String zpl, String ip, int port) throws ZebraPrintException {
Socket clientSocket = null;
try {
try {
clientSocket = new Socket(ip, port);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeBytes(zpl);
clientSocket.close();
} finally {
if (clientSocket != null) {
clientSocket.close();
}
}
} catch (IOException e1) {
throw new ZebraPrintException("Cannot print label on this printer : " + ip + ":" + port, e1);
}
}
/**
* Function to print code Zpl to local zebra(usb)
*
* @param zpl
* code Zpl to print
* @param ip
* ip adress
* @param port
* port
* @throws ZebraPrintException
* if zpl could not be printed
*/
public static void printZpl(String zpl, String printerName) throws ZebraPrintException {
try {
PrintService psZebra = null;
String sPrinterName = null;
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
for (int i = 0; i < services.length; i++) {
PrintServiceAttribute attr = services[i].getAttribute(PrinterName.class);
sPrinterName = ((PrinterName) attr).getValue();
if (sPrinterName.toLowerCase().indexOf(printerName) >= 0) {
psZebra = services[i];
break;
}
}
if (psZebra == null) {
throw new ZebraPrintNotFoundException("Zebra printer not found : " + printerName);
}
DocPrintJob job = psZebra.createPrintJob();
byte[] by = zpl.getBytes();
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(by, flavor, null);
job.print(doc, null);
} catch (PrintException e) {
throw new ZebraPrintException("Cannot print label on this printer : " + printerName, e);
}
}
/**
* Fonction to print zebraLabel
*
* @param zebraLabel
* zebraLabel
* @param ip
* ip adress
* @param port
* port
* @throws ZebraPrintException
* if zpl could not be printed
*/
public static void printZpl(ZebraLabel zebraLabel, String ip, int port) throws ZebraPrintException {
printZpl(zebraLabel.getZplCode(), ip, port);
}
/**
* Fonction to print zebraLabel
*
* @param zebraLabel
* zebraLabel
* @param ip
* ip adress
* @param port
* port
* @throws ZebraPrintException
* if zpl could not be printed
*/
public static void printZpl(ZebraLabel zebraLabel, String printerName) throws ZebraPrintException {
printZpl(zebraLabel.getZplCode(), printerName);
}
/**
* Fonction to print multiple zebraLabel to network printer
*
* @param zebraLabels
* list of zebra labels
* @param ip
* ip adress
* @param port
* port
* @throws ZebraPrintException
* if zpl could not be printed
*/
public static void printZpl(List zebraLabels, String ip, int port) throws ZebraPrintException {
StringBuilder zpl = new StringBuilder();
for (ZebraLabel zebraLabel : zebraLabels) {
zpl.append(zebraLabel.getZplCode());
}
printZpl(zpl.toString(), ip, port);
}
/**
* Fonction to print multiple zebraLabel to local printer
*
* @param zebraLabels
* list of zebra labels
* @param ip
* ip adress
* @param port
* port
* @throws ZebraPrintException
* if zpl could not be printed
*/
public static void printZpl(List zebraLabels, String printerName) throws ZebraPrintException {
StringBuilder zpl = new StringBuilder();
for (ZebraLabel zebraLabel : zebraLabels) {
zpl.append(zebraLabel.getZplCode());
}
printZpl(zpl.toString(), printerName);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy