¿Cómo simulo una impresora paralela (LPT) con una impresora USB?

18

Tengo un software heredado que solo imprime en impresoras conectadas a través de un puerto LPT. La máquina que necesito usar, sin embargo, no tiene un puerto paralelo. Además, mi impresora es un dispositivo USB.

¿Cómo engaño a mi computadora para que piense que mi impresora usb está conectada al puerto lpt?

Además, esto es para una oficina. Tendré derechos de administrador cuando implemente la solución, pero estoy buscando una solución que funcione mientras un usuario 'regular' está conectado después de que todo esté configurado.

Dane O'Connor
fuente
1
Creo que te refieres al puerto LPT , no al puerto LTP. LPT significa "Terminal de impresión de línea" y es sinónimo de "paralelo" cuando se refiere a puertos de impresora. Interesante que haya una etiqueta LTP. ¿Se puede cambiar eso? O tal vez me estoy perdiendo algo.
boot13
@ boot13, tienes razón.
Dane O'Connor

Respuestas:

21

Puede engañar a Windows utilizando la impresora USB como una impresora de "red" ficticia conectada a LPT1.

Comparte la impresora USB

Utilice un nombre compartido fácil de recordar, como "Impresora".

Conecte la impresora compartida como LPT1

NET USE LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES
harrymc
fuente
55
No necesita perder el tiempo con el adaptador de bucle invertido. Simplemente instale la impresora normalmente usando la conexión USB. Entonces compártelo. Luego use USO NETO como se indicó anteriormente.
Alan B
+1 para el NET USEtruco "Compartir y ", aunque el adaptador de bucle invertido es innecesario. Una cosa a tener en cuenta, si el usuario no tiene una contraseña en su cuenta, debe modificar la Política de seguridad local (o la clave de registro adecuada) para que esto funcione.
Afrazier
He logrado hacer todos los pasos, pero si mi PC no tiene un puerto paralelo, cuando lo uso net use LPT2 \\Computer-9313\Parallel /PERSISTENT:YES, obtengo The command completed succesfullypero no puedo ver LPT2 en dispositivos de hardware, así que no sé la dirección.
Andres
1
@ Andrés, ¿olvidaste escribir un punto y coma después de LPT2 como el anterior?
phuclv
1
Eso es un colon, no un punto y coma (; vs:)
Ian Macintosh
5

Usar un adaptador USB a paralelo no tiene ningún sentido. Aquí estamos hablando sobre el uso de un software heredado muy antiguo en hardware con conexiones solo USB. En mi caso, una impresora de etiquetas ZEBRA.

La solución en mi caso fue.

  1. Instale la impresora USB con sus controladores (solo para averiguar en qué puerto USB está conectado)
  2. Cambie el puerto del controlador a ARCHIVO (y libere el puerto USB)
  3. Instale un controlador Generic / Text Only y cambie el puerto al mismo puerto USB lógico como se ve en el punto 1
  4. Comparta la impresora genérica / solo texto para que sea visible fácilmente en VBA
  5. Instale el adaptador de bucle invertido de Microsoft en una dirección IP fija no utilizada (de lo contrario, su impresora no será visible cuando se desconecte el cable)
  6. Asigne un puerto LPTx: como se explicó anteriormente por la línea de comando (esto es para cada SW que necesita un LPT antiguo)

Con unas pocas filas de código, podrá enviar códigos ASCII a la impresora como se usaba en el pasado.

Ahora puede imprimir fácilmente en VBA (probado con Windows 7 de 64 bits y la impresora ZM400 Zebra)

Open "\\Kb\ZM400" For Output As #1       'Kb = computer Name; ZM400 = Shared printer name
For rows = 1 To 37 ' send the first 37 rows of ASCII codes from the worksheet "STRINGS"
    Print #1, Worksheets("STRINGS").Cells(rows, 1).Value
Next
Close #1
Angelo Gabriele
fuente
2

Quizás eche un vistazo a WinPrint :

Toma la salida de impresora estándar producida por una aplicación de DOS y la reenvía a una impresora predeterminada de Windows. Convierte la página de códigos, elimina las páginas vacías, admite caracteres de DIBUJOS DE CAJA. Funciona en todas las plataformas de Windows.

Ƭᴇcʜιᴇ007
fuente
2

Use el programa de impresión DOS para manipular sus puertos disponibles a los dispositivos deseados. Puede descargarlo desde este enlace https://www.dropbox.com/s/gdx05sckmbqnast/dosprint.exe?dl=0 (dos Print)

https://www.dropbox.com/s/alf6hdd5fctepmo/dosprintui.exe?dl=0 (dos Print UI)

Primero ejecute dosprint y dosprintui como administrador, luego haga doble clic en el icono de la bandeja de dosprintui, puede obtener la lista de puertos disponibles para mapear, luego haga doble clic en lpt1 o en el botón de configuración y elija la impresora deseada para mapear en ella y haga clic en Okay. BINGO ahora puede imprimir en el puerto LPT1 y su impresora usb lo imprimirá por usted.

Govinda Thapa
fuente
2

Los programas de DOS todavía se usan en el mundo de los negocios. Los consejos sobre cómo hacer que funcionen correctamente en una plataforma informática moderna son rampantes en la Web. Esto es lo que funcionó para mí.

El programa DOS de 16 bits con el que necesitamos trabajar reside en un servidor Windows 2003 de 32 bits que pronto será eliminado. Hasta entonces, una parte del programa se asigna en dos máquinas cliente de 32 bits del dominio principal con la directiva de grupo. Un acceso directo al archivo .cmd que activa el programa se coloca manualmente en los clientes, también en el dominio principal. El programa funciona bien en Windows 8.1. Un poco de compromiso para estar seguro, pero las máquinas se actualizarán a Windows 8.1 de 64 bits cuando se retire el programa DOS, que se ejecuta desde el dominio secundario.

La impresión desde el programa presenta el mayor desafío. Se utilizan dos impresoras paralelas diferentes con este programa, pero el programa imprime en un solo puerto y no hay ninguna opción para cambiar este comportamiento. ¿Necesita imprimir un cheque en la impresora láser? Debe estar conectado al puerto LPT1. ¿Necesita imprimir un volcado de datos en la impresora matricial? También debe estar conectado al puerto LPT1. Dos personas trabajan diariamente con este programa, por lo que usaremos sus computadoras, una para cada impresora. Instalemos la primera impresora:

  • Si la computadora tiene un puerto físico DB-25 (paralelo), puede deshabilitarlo en el BIOS. Windows 8.1 no lo admitirá y no lo necesitamos.

  • Para conectar la impresora a la computadora se usa un adaptador de impresora paralelo USB a DB25 modelo 16899 de Cables-to-Go. El adaptador se instala automáticamente y no se reconoce como un dispositivo paralelo o puerto LPT.

  • Ahora abra Dispositivos e impresoras. Haga clic en Agregar impresora y seleccione La impresora que quiero no está en la lista. En el siguiente diálogo, elija Agregar una impresora local o impresora de red con configuraciones manuales y, en el siguiente diálogo, Use un puerto existente. Seleccione un puerto de impresora virtual para USB, ya sea USB001 o USB002, de la lista y no las opciones de puerto LPT.

  • La primera impresora es una impresora de matriz de puntos multimodo Panasonic KX-P1191. La impresora no aparece en el cuadro de diálogo que solicita un controlador y la actualización de la lista haciendo clic en Windows Update no ayuda. Una comprobación del sitio de soporte de Panasonic indica que la impresora no es totalmente compatible en este momento, pero un especialista en soporte técnico de Panasonic ayudó a resolver el camino que condujo al controlador Epson FX Series 1 (80) incluido con Windows 8.1. Funciona perfectamente

Ahora la impresora está instalada. Pero está en el puerto USB001 y el programa solo imprimirá en el puerto LPT1. La solución es relativamente sencilla y puede integrarse directamente en el archivo por lotes que se utiliza para iniciar el programa. Vayamos a la vieja escuela y hagamos un truco con nuestra impresora: así la compartiremos e imprimiremos en LPT1.

  • Haga clic con el botón derecho en la impresora y elija Propiedades. Comparta la impresora, no la incluya en el directorio, cree un nombre compartido corto solo por si acaso, y luego asegúrese de que el usuario de la máquina del cliente aparezca en el área de Grupo o nombre de usuario en la pestaña Seguridad.

  • Las dos personas que imprimirán en estas impresoras crean mi cheque de pago, por lo que les otorgué derechos de administrador de dominio. Eso puede haber sido innecesario. Ambos son usuarios en el dominio principal pero no en el secundario, y no quería perder tiempo resolviendo el problema de los permisos.

Ahora modifique el archivo por lotes y use el comando de uso de red bien documentado para implementar la solución de impresión:

@echo off
::delete the printer
net use lpt1 /delete
::add the printer
net use lpt1 \\\COMPUTER\PRINTER /persistent:yes
::fire up the nasty ol' DOS program
<existing syntax used to start the program>

Donde ORDENADOR es el nombre de la computadora e IMPRESORA es el nombre compartido de la impresora. El procedimiento funcionó igualmente bien en una segunda computadora para la impresora HP LaserJet 1100 usando el controlador "HP LaserJet 1100 (MS)" suministrado con Windows 8.1.

- NOTAS -

Error de sistema 5:

Asegúrese de que el usuario aparezca en la pestaña de seguridad. "Todos" se pueden eliminar. ¿Se requieren privilegios de administrador de dominio para el usuario? Probablemente no, si todo se ejecuta desde un dominio.

Error del sistema 66:

Verifica tu sintaxis. ¿Probablemente escribiste mal el nombre de la computadora, la impresora o tal vez te perdiste el colon? Solo se necesitan dos puntos, según la documentación de Microsoft. ¿Agregar un colon innecesario a lpt1 [:] causará falla?

Todo sobre uso neto: https://technet.microsoft.com/en-us/library/bb490717.aspx

blinkdt
fuente
0

Hay muchos "adaptadores paralelos a usb" en el mercado. Puede obtener uno en línea por alrededor de $ 10, y probablemente sea un buen lugar para comenzar.

Joe Internet
fuente
El problema no es conectar la impresora a la computadora, está conectada. El problema es hacer que la impresora USB actúe como si estuviera conectada a un puerto LTP (un puerto LTP virtual).
Dane O'Connor
Pero no tiene un puerto paralelo y tiene una impresora USB.
David Thomas
0

No ha dicho qué hardware está utilizando, pero suponiendo que sea una PC Wintel, debería poder comprar una tarjeta de puerto paralelo genérica para casi nada. Aparte de eso, puede redirigirlo usando NET USE, como lo sugiere harrymc.

boot13
fuente
0

Estaba en la misma posición con el software empresarial diseñado a medida basado en Clipper. Busqué algún software de emulación en paralelo para imprimir en una impresora usb que funcionó un poco pero tenía sus propios problemas. Superar los problemas de 64 bits win10 no dos fue un verdadero desafío.

Encontré Harbour HMG que, después de cambiar algunas líneas de código, recompiló el software de la aplicación a 32 bits. También hago que mis aplicaciones escriban datos en archivos temporales que tomo con Microsoft Access para publicar algunos informes formateados increíbles. Oh, por cierto. Ahora las aplicaciones funcionan en Windows 10 de 64 bits con importantes mejoras en memoria y velocidad. Además, tengo los informes enviados a impresoras de línea usb o inyectores de tinta o lo que yo elija.

Rob S
fuente