Tengo una impresora térmica (china barata) con conexión USB con drivers Windows y Linux. Probé la instalación del controlador PPD de Linux con Gutenprint y usbtb al principio sin suerte.
Así que me gustaría poder enviar solo texto directamente a la impresora. No puedo ver ningún dispositivo virtual en /dev/ que parezca corresponder a la impresora.
La salida de Información del sistema se ve así:
Generic Bulk Device:
Product ID: 0x5011
Vendor ID: 0x0416 (Winbond Electronics Corp.)
Version: 3.00
Serial Number: 1234567890
Speed: Up to 12 Mb/sec
Manufacturer: Generic
Location ID: 0x14100000 / 1
Current Available (mA): 500
Current Required (mA): 100
1284 Device ID: print00
¿Hay alguna forma de enviar texto (ASCII) a la impresora?
Cuando Mac OS X intenta identificar la impresora, logra enviar un código PostScript que la impresora genera textualmente, por lo que al menos algunas partes de la comunicación con la impresora funcionan. Si pudiera evitar enviar código PostScript y en su lugar enviar texto ordinario.
Logré instalar un controlador de impresora sin formato e imprimirlo desde la línea de comandos.
Usando la interfaz web de CUPS/Gutenprint en http://localhost:631/
Agregué una impresora con URI de dispositivo
usbtb://Generic%00%00%06/Generic%20Bulk%20Device?serial=1234567890
y seleccionó "Raw" como marca para la impresora. (¡Tenga en cuenta que el parámetro URI de serie corresponde al número de serie del dispositivo USB que se indica en la pregunta!)
Ahora puedo ver la impresora en la lista al emitir el comandolpstat -p -d
la impresora Generic_usbtb está inactiva. habilitado desde el mar 16 jul 23:04:11 2013
Para imprimir el archivo de texto text.txt
escribolp -d Generic_usbtb test.txt
$ cupsctl WebInterface=yes
primero, para activar la interfaz web de CUPSEstamos hablando de una impresora de línea . Este tipo de impresora acepta texto sin formato y lo imprime. Por lo general, admiten 255 caracteres y deben configurarse en algunos conjuntos de caracteres admitidos, como ASCII o CP437.
Estas impresoras aceptan entrada "en bruto", es decir, caracteres, espacios, saltos de línea, etc. A veces también admiten imágenes.
Básicamente necesitarás
$ sudo cupsctl WebInterface=yes
Eso habilitará una función que le permite agregar y eliminar impresoras del sitio de administración web de CUPS localhost.
Si es una impresora local:
$ lpinfo -v | grep usb
Obtendrás una respuesta que se parece a:
direct usb:///80Series%20Receipt%20Printer%20200DPI?location=14200000
La usb:///<printer name>?location=<locationID>
es la dirección de su impresora en el concentrador USB. Copia ese texto.
Si es una impresora de red, querrá la dirección IP y el puerto de esa impresora. La dirección completa será:
socket://<ip address>:<port>
Por ejemplo:
socket://192.168.1.12:9100
Vaya a su página de administración de CUPS ( http://localhost:631 )
Haga clic en Administración
Haga clic en Agregar impresora
Haga clic en AppSocket/HP JetDirect (no haga clic en su impresora existente si aparece), haga clic en Continuar
Pegue la dirección de su impresora del Paso 2 en la entrada de Conexión , haga clic en Continuar
Asigne un nombre y una descripción a la impresora, haga clic en Continuar
Seleccione Raw en Hacer selección y haga clic en Continuar . Si tiene mucha suerte, puede ver a su fabricante aquí. Buena suerte.
Seleccione Raw Queue (en) en la selección de Modelo y haga clic en Agregar impresora
Seleccione las opciones de la impresora. Para Raw Queue (en) , verá un Banner inicial y un Banner final . Probablemente querrá seleccionar Ninguno para ambos.
$ sudo sudo cupsctl WebInterface=no
en su Terminal$ lpstat -p
. Esto listará sus impresorasprinter HP_LaserJet_200_color_M251nw__0200B9_ is idle. enabled since Tue Jan 15 00:24:06 2019
printer PDF_Printer is idle. enabled since Sat Jan 11 14:00:23 2020
printer rongta is idle. enabled since Sun Jan 10 14:37:44 2021
printer Rongta_80mm_Thermal_Printer is idle. enabled since Sun Jan 10 14:42:19 2021
En mi caso tengo unRongta_80mm_Thermal_Printer
Ok, entonces aquí su millaje puede variar.
$ lp -d <printer_name> file.txt
para imprimir file.txt
en la impresora <printer_name>
y obtendrá una ID de trabajo de impresión como respuesta.En mi caso, emití:
$ echo "hello" > file.txt
$ lp -d Rongta_80mm_Thermal_Printer file.txt
request id is rongta-61 (1 file(s))
Aparentemente , también puede imprimir archivos PDF y PostScript de esta manera, ya que se supone que el sistema de impresión de MacOS administra la traducción entre el sistema y la impresora.
Ruscos
casa lunar
muviciel