El día de hoy te enseñaré a imprimir un PDF de manera directa a una impresora térmica, sin cuadros de diálogo ni confirmaciones de usuario; todo de manera silenciosa.
De esta manera podrás imprimir un PDF generado en cualquier lugar directamente a una impresora térmica.
En estos casos yo siempre prefiero usar comandos ESC POS para imprimir, pero si tú ya tienes tu diseño del PDF entonces veamos cómo hacerlo. Yo lo haré con JavaScript pero verás que se puede hacer con cualquier lenguaje de programación.
Para que esto funcione debemos descargarnos 2 herramientas gratuitas: el plugin PDF y PDFtoPrinter (una vez que abras ese enlace haz clic en download it here). Las mismas deben estar en la misma ubicación y solo debes ejecutar el plugin.
Es decir, debes tener a PDFtoPrinter.exe
y plugin_pdf_prod_ARQUITECTURA.exe
en la misma carpeta, y después de eso ejecutar plugin_pdf_prod_ARQUITECTURA.exe
.
Comprueba que se está ejecutando en el administrador de tareas dentro de “Detalles”
Ahora solo tenemos que hacer una petición HTTP. JavaScript ofrece una manera muy simple a través de fetch. Para este ejemplo voy a imprimir un PDF de internet que está en: https://parzibyte.github.io/plugin-silent-pdf-print-examples/delgado.pdf
El código es realmente simple y queda así:
const urlPDF = "https://parzibyte.github.io/plugin-silent-pdf-print-examples/delgado.pdf";
const nombreImpresora = "PT210";
const url = `http://localhost:8080/url?urlPdf=${urlPDF}&impresora=${nombreImpresora}`;
fetch(url)
Y eso es todo. Al momento de que ese código sea ejecutado, el resultado será parecido al siguiente:
Como puedes ver, solo tuve que invocar a localhost:8080/url
pasándole la URL del PDF (urlPdf
) y el nombre de la impresora (nombreImpresora
).
El diseño del ticket lo hice en un procesador de textos, pero tú puedes diseñarlo en cualquier entorno. También puedes imprimir un PDF local o un PDF alojado en localhost.
Ahora ya podrás usar JavaScript para imprimir un PDF de cualquier diseño pero sobre todo de manera silenciosa sin que el usuario tenga que seleccionar la impresora manualmente.
Serás capaz de usarlo en cualquier framework como jQuery, React, Svelte, Vue, etcétera, ya que solo necesitas hacer una petición HTTP.
Lo que te mostré es solo un simple ejemplo para imprimir un PDF desde cualquier lugar a cualquier tipo de impresora.
Específicamente has aprendido a imprimir un PDF en una thermal printer o POS printer usando JavaScript, pero te repito que al ser un servidor HTTP podrás invocarlo desde cualquier otro lenguaje.
Te dejo el post de presentación en donde vas a encontrar más ejemplos y documentación de la API: https://parzibyte.me/blog/2020/12/07/plugin-imprimir-pdf-manera-silenciosa-javascript/
Por cierto, este plugin también permite imprimir en impresoras virtuales (como la Microsoft Print to PDF) así que puedes hacer todas las pruebas que quieras sin usar papel.
Finalmente te quiero recomendar mi plugin para impresoras térmicas que es muy parecido a este pero usa comandos ESC POS y a mi parecer los tickets quedan más legibles.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.