diff --git a/Impresora.js b/Impresora.js
index cbe6b1f..7f56be2 100644
--- a/Impresora.js
+++ b/Impresora.js
@@ -19,7 +19,14 @@ const C = {
AlineacionDerecha: "right",
AlineacionIzquierda: "left",
FuenteA: "A",
- FuenteB: "B"
+ FuenteB: "B",
+ AccionBarcode: "barcode",
+ Medida80: 80,
+ Medida100: 100,
+ Medida156: 156,
+ Medida200: 200,
+ Medida300: 300,
+ Medida350: 350,
};
const URL_PLUGIN = "http://localhost:8000";
@@ -125,4 +132,18 @@ class Impresora {
this.operaciones.push(new OperacionTicket(C.AccionQr, contenido));
}
+ barcode(contenido, medida) {
+ medida = parseInt(medida);
+ if (medida !== C.Medida80 &&
+ medida !== C.Medida100 &&
+ medida !== C.Medida156 &&
+ medida !== C.Medida200 &&
+ medida !== C.Medida300 &&
+ medida !== C.Medida350) {
+ throw Error("Valor para medida del barcode inválido");
+ }
+ let payload = contenido.concat(",").concat(medida.toString());
+ this.operaciones.push(new OperacionTicket(C.AccionBarcode, payload));
+ }
+
}
\ No newline at end of file
diff --git a/ejemplos/barcode/index.html b/ejemplos/barcode/index.html
new file mode 100644
index 0000000..4fcc1ec
--- /dev/null
+++ b/ejemplos/barcode/index.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+ Imprimir códigos de barras en impresora térmica
+
+
+
+
+
+
+
+
Códigos de barras en thermal printer
+
En este ejemplo se muestra cómo imprimir un código de barras en una ticketera
+
By Parzibyte
+
+
Documentación
+
Recuerda que el plugin debe estar ejecutándose en segundo plano
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Log
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ejemplos/barcode/script.js b/ejemplos/barcode/script.js
new file mode 100644
index 0000000..e63bd87
--- /dev/null
+++ b/ejemplos/barcode/script.js
@@ -0,0 +1,61 @@
+const $estado = document.querySelector("#estado"),
+ $listaDeImpresoras = document.querySelector("#listaDeImpresoras"),
+ $codigo = document.querySelector("#codigo"),
+ $btnLimpiarLog = document.querySelector("#btnLimpiarLog"),
+ $btnImprimir = document.querySelector("#btnImprimir"),
+ $tamanioBarcode = document.querySelector("#tamanioBarcode");
+const loguear = texto => $estado.textContent += (new Date()).toLocaleString() + " " + texto + "\n";
+const limpiarLog = () => $estado.textContent = "";
+
+$btnLimpiarLog.addEventListener("click", limpiarLog);
+const limpiarLista = () => {
+ for (let i = $listaDeImpresoras.options.length; i >= 0; i--) {
+ $listaDeImpresoras.remove(i);
+ }
+};
+const obtenerListaDeImpresoras = () => {
+ loguear("Cargando lista...");
+ Impresora.getImpresoras()
+ .then(listaDeImpresoras => {
+ loguear("Lista cargada");
+ limpiarLista();
+ listaDeImpresoras.forEach(nombreImpresora => {
+ const option = document.createElement('option');
+ option.value = option.text = nombreImpresora;
+ $listaDeImpresoras.appendChild(option);
+ })
+ });
+};
+obtenerListaDeImpresoras();
+/*
+ * La magia sucede a continuación
+ * */
+$btnImprimir.addEventListener("click", () => {
+ // Recuperar el código de barras
+ let contenido = $codigo.value;
+ // Validar
+ if (!contenido) {
+ return alert("Escribe el contenido del código de barras");
+ }
+ // Ahora la impresora
+ let impresoraSeleccionada = $listaDeImpresoras.options[$listaDeImpresoras.selectedIndex].value;
+ if (!impresoraSeleccionada) {
+ return alert("Selecciona una impresora");
+ }
+ // El tamaño..
+ let tamanioBarcode = $tamanioBarcode.options[$tamanioBarcode.selectedIndex].value;
+ if (!tamanioBarcode) {
+ return alert("Selecciona el tamaño");
+ }
+ // Si está bien se ejecuta esto...
+ let impresora = new Impresora();
+ impresora.barcode(contenido, tamanioBarcode);
+ // Dos saltos de línea
+ impresora.feed(2);
+ // Terminar en la impresora seleccionada
+ loguear("Imprimiendo...");
+ impresora.imprimirEnImpresora(impresoraSeleccionada)
+ .then(respuesta => {
+ loguear("Al imprimir el código de barras tenemos: " + respuesta);
+ })
+});
\ No newline at end of file
diff --git a/index.html b/index.html
index cc4d9d2..37cc665 100644
--- a/index.html
+++ b/index.html
@@ -86,6 +86,9 @@ Ejemplos
Códigos QR
+
+ Códigos de barras
+