Como simulo uma impressora paralela (LPT) com uma impressora USB?

18

Eu tenho algum software legado que imprime apenas em impressoras conectadas por uma porta LPT. A máquina que preciso usar, no entanto, não possui uma porta paralela. Além disso, minha impressora é um dispositivo USB.

Como induzir meu computador a pensar que minha impressora USB está conectada à porta lpt?

Além disso, isso é para um escritório. Eu terei direitos de administrador ao implementar a solução alternativa, mas estou procurando uma solução que funcione enquanto um usuário 'regular' estiver logado depois que tudo estiver configurado.

Dane O'Connor
fonte
1
Eu acho que você quer dizer porta LPT , não porta LTP. LPT significa "Terminal de impressão em linha" e é sinônimo de "paralelo" quando se refere às portas da impressora. Interessante que exista uma etiqueta LTP. Isso pode ser mudado? Ou talvez eu esteja perdendo alguma coisa.
usar o seguinte comando
@ boot13, você está correto.
Dane O'Connor

Respostas:

21

Você pode enganar o Windows usando a impressora USB como uma impressora "de rede" conectada ao LPT1.

Compartilhe a impressora USB

Use um nome de compartilhamento fácil de lembrar, como "Impressora".

Conecte a impressora compartilhada como LPT1

NET USE LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES
harrymc
fonte
5
Você não precisa mexer no adaptador de loopback. Basta instalar a impressora normalmente usando a conexão USB. Então compartilhe. Em seguida, use NET USE como acima.
Alan B
+1 no NET USEtruque "Compartilhar e ", embora o adaptador de loopback seja desnecessário. Uma coisa a observar, se o usuário não tiver uma senha em sua conta, você precisará modificar a Diretiva de Segurança Local (ou a chave do Registro apropriada) para fazer isso funcionar.
afrazier
Eu consegui net use LPT2 \\Computer-9313\Parallel /PERSISTENT:YESexecutar todas as etapas, mas se o meu PC não tiver uma porta paralela, quando eu uso, The command completed succesfullynão consigo ver o LPT2 em dispositivos de hardware, então não sei o endereço dele.
Andres
1
@ Andres você esqueceu de digitar um ponto-e-vírgula após o LPT2 como acima?
phuclv
1
Isso é uma vírgula, não um ponto e vírgula (; vs:)
Ian Macintosh
5

Usar um adaptador USB para paralelo não faz sentido. Aqui estamos falando sobre o uso de um software legado muito antigo em hardware com conexões somente USB. No meu caso, uma impressora de etiquetas ZEBRA.

A solução no meu caso foi.

  1. Instale a impressora USB com seus drivers (apenas para descobrir em qual porta USB está conectada)
  2. Altere a porta do driver para FILE (e libere a porta USB)
  3. Instale um driver genérico / somente texto e altere a porta para a mesma porta USB lógica, como visto no ponto 1
  4. Compartilhe a impressora Generic / Text Only para torná-la visível facilmente no VBA
  5. Instale o adaptador Microsoft Loopback em um endereço IP fixo não utilizado (caso contrário, sua impressora não ficará visível quando o cabo estiver desconectado)
  6. Atribua uma porta LPTx: conforme explicado anteriormente pela linha de comando (isto é para todos os SW que precisam de um LPT antigo)

Com poucas linhas de código, você poderá enviar códigos ASCII para a impressora, como usado no passado.

Agora você pode imprimir facilmente em VBA (testado com a impressora Windows 7 de 64 bits e 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
fonte
2

Talvez confira o WinPrint :

Obtém a saída padrão da impressora produzida por um aplicativo DOS e a encaminha para uma impressora padrão do Windows. Converte página de código, retira páginas vazias, suporta caracteres BOX DRAWINGS. Funciona em todas as plataformas Windows.

Ƭᴇcʜιᴇ007
fonte
2

Use o DOS Print Program para manipular as portas disponíveis para os dispositivos desejados. Você pode baixá-lo neste link 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)

Primeiro, execute o dosprint e o dosprintui como administrador, depois clique duas vezes no ícone da bandeja dosprintui, você pode obter a lista de portas disponíveis para mapear, clique duas vezes em lpt1 ou no botão set e escolha a impressora desejada para mapear e clique em Está bem. BINGO agora você pode imprimir na porta LPT1 e sua impressora USB imprimirá isso para você.

Govinda Thapa
fonte
2

Os programas DOS ainda são usados ​​no mundo dos negócios. Os conselhos sobre como fazê-los funcionar corretamente em uma plataforma de computação moderna são comuns na Web. Aqui está o que funcionou para mim.

O programa DOS de 16 bits com o qual precisamos trabalhar reside em um servidor Windows 2003 de 32 bits que será removido em breve. Até então, um compartilhamento para o programa é mapeado em duas máquinas clientes de 32 bits do domínio primário com a Diretiva de Grupo. Um atalho para o arquivo .cmd que inicia o programa é colocado manualmente nos clientes, também no domínio principal. O programa roda bem no Windows 8.1. Um pouco de comprometimento, com certeza, mas as máquinas serão atualizadas para o Windows 8.1 de 64 bits quando o programa DOS, que é executado no domínio secundário, for desativado.

Imprimir a partir do programa apresenta o maior desafio. Duas impressoras paralelas diferentes são usadas com este programa, mas o programa imprime apenas em uma única porta e não há opção para alterar esse comportamento. Precisa imprimir um cheque na impressora a laser? Ele precisa ser conectado à porta LPT1. Precisa imprimir um despejo de dados na impressora matricial? Ele também precisa ser conectado à porta LPT1. Duas pessoas trabalham com esse programa diariamente, portanto, usaremos seus computadores, um para cada impressora. Vamos instalar a primeira impressora:

  • Se o computador tiver uma porta DB-25 (paralela) física, você poderá desativá-la no BIOS. O Windows 8.1 não suporta e não precisamos.

  • Um adaptador de impressora paralela USB990 para USB25 modelo Cables-to-Go é usado para conectar a impressora ao computador. O adaptador é instalado automaticamente e não é reconhecido como um dispositivo paralelo ou porta LPT.

  • Agora abra Dispositivos e Impressoras. Clique em Adicionar impressora e selecione A impressora que eu quero não está listada. No próximo diálogo, escolha Adicionar uma impressora local ou impressora de rede com configurações manuais e, no próximo diálogo, Use uma porta existente. Selecione uma porta de impressora virtual para USB, USB001 ou USB002, na lista e não nas opções de porta LPT.

  • A primeira impressora é uma impressora de matriz de pontos multimídia Panasonic KX-P1191. A impressora não está listada na caixa de diálogo que solicita um driver e a atualização da lista clicando em Windows Update não ajuda. Uma verificação no site de suporte da Panasonic indica que a impressora não tem suporte neste momento, mas um especialista em suporte técnico da Panasonic ajudou a descobrir a trilha que levava ao driver Epson FX Series 1 (80) incluído no Windows 8.1. Funciona perfeitamente.

Agora a impressora está instalada. Mas está na porta USB001 e o programa será impresso apenas na porta LPT1. A solução é relativamente direta e pode ser integrada diretamente no arquivo em lotes usado para iniciar o programa. Vamos começar a velha escola e fazer um truque em nossa impressora: vamos compartilhá-la e imprimir em LPT1 dessa maneira.

  • Clique com o botão direito do mouse na impressora e escolha Propriedades. Compartilhe a impressora, não a liste no diretório, crie um nome de compartilhamento curto apenas para uma boa medida e garanta que o usuário da máquina cliente esteja listado na área Grupo ou nome de usuário na guia Segurança.

  • As duas pessoas que imprimirão nessas impressoras criam meu salário, então eu lhes dei direitos de administrador de domínio. Isso pode ter sido desnecessário. Ambos são usuários no domínio primário, mas não no secundário, e eu não queria gastar tempo resolvendo o problema de permissões.

Agora modifique o arquivo em lotes e use o comando net use bem documentado para implementar a solução de impressão:

@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>

Onde COMPUTADOR é o nome do computador e IMPRESSORA é o nome de compartilhamento da impressora. O procedimento funcionou igualmente bem em um segundo computador para a impressora HP LaserJet 1100 usando o driver "HP LaserJet 1100 (MS)" fornecido com o Windows 8.1.

-- NOTAS --

Erro de sistema 5:

Verifique se o usuário está listado na guia segurança. "Todos" podem ser removidos. Os privilégios de administrador de domínio são necessários para o usuário? Provavelmente não, se tudo estiver sendo executado em um domínio.

Erro de sistema 66:

Verifique sua sintaxe. Você provavelmente digitou incorretamente o nome do computador, da impressora ou perdeu o cólon? Apenas um cólon é necessário, de acordo com a documentação da Microsoft. A adição de dois pontos desnecessários ao lpt1 [:] causará falha?

Tudo sobre o uso da rede: https://technet.microsoft.com/en-us/library/bb490717.aspx

blinkdt
fonte
0

Existem muitos "adaptadores paralelos a usb" no mercado. Você pode adquirir um online por cerca de US $ 10, e provavelmente é um bom lugar para começar.

Joe Internet
fonte
O problema não está conectando a impressora ao computador - ela está conectada. O problema é fazer com que a impressora USB aja como se estivesse conectada a uma porta LTP (uma porta LTP virtual).
Dane O'Connor
Mas ele não tem uma porta paralela e possui uma impressora USB.
David Thomas
0

Você não disse qual hardware está usando, mas assumindo que é um PC Wintel, você poderá comprar uma placa de porta paralela genérica por quase nada. Além disso, você pode redirecioná-lo usando o NET USE, conforme sugerido por harrymc.

boot13
fonte
0

Eu estava na mesma posição com o software personalizado baseado em Clipper. Olhei para algum software de emulação paralela para imprimir em uma impressora USB que funcionava um pouco, mas tinha seus próprios problemas. Superar os problemas de 64 bits win10 no dos foi um desafio real.

Encontrei o Harbor HMG que, depois de alterar algumas linhas de código, recompilou o software do aplicativo para 32 bits. Também tenho meus aplicativos que gravam dados em arquivos temporários, que utilizo com o Microsoft Access para publicar alguns relatórios formatados impressionantes. Ah, aliás. Agora, os aplicativos funcionam no Windows 10 de 64 bits, com grandes melhorias na memória e na velocidade. Além disso, tenho os relatórios enviados para impressoras de linha USB ou jatos de tinta ou o que eu escolher.

Rob S
fonte