|
|
@@ -2,10 +2,14 @@ var available_printers = null;
|
|
|
var selected_category = null;
|
|
|
var default_printer = null;
|
|
|
var selected_printer = null;
|
|
|
-var format_start = "^XA^LL200^FO80,50^A0N36,36^FD";
|
|
|
-var format_end = "^FS^XZ";
|
|
|
-var zpl = "^XA^LH220,0^FO0,0^A0,16^BY1,2.5,16^BCN,30,Y,N,N^FD4493890000170413000000^FS^FO0,55^A0,16^FD-10拼-两层-ENIG-联迪代工供应商^FS^FO0,80^A0,16^BY1,2.5,16^BCN,30,Y,N,N^FDYY01001632-103^FS^XZ";
|
|
|
var default_mode = true;
|
|
|
+// get zpl from the url
|
|
|
+var getZPLUrl = "zebra/generateZPL";
|
|
|
+var resolutionCookie = getCookie("resolution");
|
|
|
+
|
|
|
+if (resolutionCookie) {
|
|
|
+ $('#resolution').val(resolutionCookie);
|
|
|
+}
|
|
|
|
|
|
$(document).ready(setup_web_print);
|
|
|
|
|
|
@@ -18,54 +22,52 @@ function setup_web_print() {
|
|
|
selected_category = null;
|
|
|
default_printer = null;
|
|
|
|
|
|
- BrowserPrint.getDefaultDevice('printer',
|
|
|
- function(printer) {
|
|
|
- default_printer = printer
|
|
|
- if ((printer != null) && (printer.connection != undefined)) {
|
|
|
- selected_printer = printer;
|
|
|
- var printer_details = $('#printer_details');
|
|
|
- var selected_printer_div = $('#selected_printer');
|
|
|
+ BrowserPrint.getDefaultDevice('printer', function(printer) {
|
|
|
+ default_printer = printer
|
|
|
+ if ((printer != null) && (printer.connection != undefined)) {
|
|
|
+ selected_printer = printer;
|
|
|
+ var printer_details = $('#printer_details');
|
|
|
+ var selected_printer_div = $('#selected_printer');
|
|
|
|
|
|
- selected_printer_div.text("Using Default Printer: "
|
|
|
- + printer.name);
|
|
|
- hideLoading();
|
|
|
- printer_details.show();
|
|
|
- $('#print_form').show();
|
|
|
+ selected_printer_div.text("Default Printer: " + printer.name);
|
|
|
+ hideLoading();
|
|
|
+ printer_details.show();
|
|
|
+ $('#print_form').show();
|
|
|
|
|
|
- }
|
|
|
- BrowserPrint.getLocalDevices(function(printers) {
|
|
|
- available_printers = printers;
|
|
|
- var sel = document.getElementById("printers");
|
|
|
- var printers_available = false;
|
|
|
- sel.innerHTML = "";
|
|
|
- if (printers != undefined) {
|
|
|
- for (var i = 0; i < printers.length; i++) {
|
|
|
- if (printers[i].connection == 'usb') {
|
|
|
- var opt = document.createElement("option");
|
|
|
- opt.innerHTML = printers[i].connection + ": "
|
|
|
- + printers[i].uid;
|
|
|
- opt.value = printers[i].uid;
|
|
|
- sel.appendChild(opt);
|
|
|
- printers_available = true;
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ BrowserPrint.getLocalDevices(function(printers) {
|
|
|
+ available_printers = printers;
|
|
|
+ var sel = document.getElementById("printers");
|
|
|
+ var printers_available = false;
|
|
|
+ sel.innerHTML = "";
|
|
|
+ if (printers != undefined) {
|
|
|
+ for (var i = 0; i < printers.length; i++) {
|
|
|
+ if (printers[i].connection == 'usb') {
|
|
|
+ var opt = document.createElement("option");
|
|
|
+ opt.innerHTML = printers[i].connection + ": "
|
|
|
+ + printers[i].uid;
|
|
|
+ opt.value = printers[i].uid;
|
|
|
+ sel.appendChild(opt);
|
|
|
+ printers_available = true;
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (!printers_available) {
|
|
|
- showErrorMessage("No Zebra Printers could be found!");
|
|
|
- hideLoading();
|
|
|
- $('#print_form').hide();
|
|
|
- return;
|
|
|
- } else if (selected_printer == null) {
|
|
|
- default_mode = false;
|
|
|
- changePrinter();
|
|
|
- $('#print_form').show();
|
|
|
- hideLoading();
|
|
|
- }
|
|
|
- }, undefined, 'printer');
|
|
|
- }, function(error_response) {
|
|
|
- showBrowserPrintNotFound();
|
|
|
- });
|
|
|
+ if (!printers_available) {
|
|
|
+ showErrorMessage("No Zebra Printers could be found!");
|
|
|
+ hideLoading();
|
|
|
+ $('#print_form').hide();
|
|
|
+ return;
|
|
|
+ } else if (selected_printer == null) {
|
|
|
+ default_mode = false;
|
|
|
+ changePrinter();
|
|
|
+ $('#print_form').show();
|
|
|
+ hideLoading();
|
|
|
+ }
|
|
|
+ }, undefined, 'printer');
|
|
|
+ }, function(error_response) {
|
|
|
+ showBrowserPrintNotFound();
|
|
|
+ });
|
|
|
};
|
|
|
function showBrowserPrintNotFound() {
|
|
|
showErrorMessage("An error occured while attempting to connect to your Zebra Printer. You may not have Zebra Browser Print installed, or it may not be running. Install Zebra Browser Print, or start the Zebra Browser Print Service, and try again.");
|
|
|
@@ -75,15 +77,24 @@ function sendData() {
|
|
|
showLoading("Printing...");
|
|
|
checkPrinterStatus(function(text) {
|
|
|
if (text == "Ready to Print") {
|
|
|
- // selected_printer.send(format_start + $('#entered_name').val() +
|
|
|
- // format_end, printComplete, printerError);
|
|
|
- var generateZPLUrl = "zebra/generateZPL";
|
|
|
+ var resolution = $('#resolution').val();
|
|
|
+ if (resolution != resolutionCookie) {
|
|
|
+ setCookie("resolution", resolution, 365);
|
|
|
+ }
|
|
|
+ getZPLUrl += "?resolution=" + resolution;
|
|
|
$.ajax({
|
|
|
type : "POST",
|
|
|
- url : generateZPLUrl,
|
|
|
+ url : getZPLUrl,
|
|
|
success : function(data) {
|
|
|
console.log(data);
|
|
|
- selected_printer.send(data, printComplete, printerError);
|
|
|
+ if (!data.length) {
|
|
|
+ printerError("No ZPL");
|
|
|
+ } else {
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ selected_printer.send(data[i], printComplete,
|
|
|
+ printerError);
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
error : function(XMLHttpRequest) {
|
|
|
console.log(XMLHttpRequest);
|
|
|
@@ -147,7 +158,6 @@ function showLoading(text) {
|
|
|
};
|
|
|
function printComplete() {
|
|
|
hideLoading();
|
|
|
- alert("Printing complete");
|
|
|
}
|
|
|
function hideLoading() {
|
|
|
$('#printer_data_loading').hide();
|
|
|
@@ -190,4 +200,4 @@ function trySetupAgain() {
|
|
|
$('#error_div').hide();
|
|
|
setup_web_print();
|
|
|
// hideLoading();
|
|
|
-}
|
|
|
+}
|