2010-08-30 18:49:48 +0000 2010-08-30 18:49:48 +0000
18
18

Como posso simular uma impressora paralela (LPT) com uma impressora USB?

Tenho algum software antigo que só imprime em impressoras ligadas através de uma porta LPT. A máquina que preciso de utilizar, no entanto, não tem uma porta paralela. Além disso, a minha impressora é um dispositivo USB.

Como é que convenço o meu computador a pensar que a minha impressora usb está ligada à porta lpt?

Além disso, isto é para um escritório. Terei direitos de administrador quando implementar o trabalho, mas estou a tentar encontrar uma solução que funcione enquanto um utilizador “normal” está registado depois de tudo estar configurado.

Respostas (8)

21
21
21
2010-08-30 19:26:24 +0000

Pode enganar o Windows utilizando a impressora USB como uma impressora fictícia “em rede” ligada à LPT1.

Partilhar a impressora USB

Utilizar um nome de partilha fácil de lembrar, como “Impressora”.

Ligar a impressora partilhada como LPT1

NET USE LPT1: \[Computer-Name]\Printer /PERSISTENT:YES
5
5
5
2012-10-26 15:44:27 +0000

A utilização de um adaptador USB para o paralelismo não faz qualquer sentido. Aqui estamos a falar da utilização de um software antigo muito antigo em hardware com ligações apenas USB. No meu caso, uma impressora de etiquetas ZEBRA.

A solução no meu caso foi.

  1. Instalar a impressora USB com os seus drivers (apenas para descobrir em que porta USB está ligada)
  2. Mudar a porta do driver para FILE (e libertar a porta USB)
  3. Instale um driver Genérico / Somente texto e mude a porta para a mesma porta USB lógica que a vista no ponto 1
  4. Partilhe a impressora Generic /Text Only a fim de a tornar facilmente visível em VBA
  5. Instale o adaptador Microsoft Loopback num endereço IP fixo não utilizado (caso contrário a sua impressora não ficará visível quando o cabo for desligado)
  6. Atribuir um LPTx: porta como explicado anteriormente por linha de comando (isto é para cada SW que necessita de um LPT antigo)

Com poucas linhas de código poderá enviar códigos ASCII para a impressora como utilizado no passado.

Agora pode imprimir facilmente em VBA (testado com a impressora Zebra do Windows 7 de 64 bits e ZM400)

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
2
2
2
2015-02-16 01:35:25 +0000

Os programas DOS ainda são utilizados no mundo dos negócios. O aconselhamento sobre como pô-los a funcionar correctamente numa plataforma de computação moderna é galopante na Web. Eis o que funcionou para mim.

O programa DOS de 16 bits com que precisamos de trabalhar reside num servidor Windows 2003 de 32 bits que será em breve removido. Até lá, uma partilha do programa é mapeada em duas máquinas clientes de 32-bit do domínio primário com a Política de Grupo. Um atalho para o ficheiro .cmd que dispara o programa é colocado manualmente nos clientes, também no domínio primário. O programa corre bem no Windows 8.1. Um pouco de compromisso, mas as máquinas serão actualizadas para o Windows 8.1 de 64 bits quando o programa DOS, que corre a partir do domínio secundário, for retirado.

A impressão a partir do programa apresenta o maior desafio. Duas impressoras paralelas diferentes são usadas com este programa, mas o programa imprime apenas para uma única porta e não há opção para alterar este comportamento. Precisa de imprimir um cheque para a impressora laser? Precisa de ser ligado à porta LPT1. Precisa imprimir um dump de dados para a impressora matricial de pontos? Precisa também de ser ligado à porta LPT1. Duas pessoas trabalham com este programa diariamente, por isso vamos utilizar os seus computadores, um para cada impressora. Vamos instalar a primeira impressora:

  • Se o computador tiver uma porta física DB-25 (paralela), pode desactivá-la na BIOS. O Windows 8.1 não o suporta e não precisamos dele.

  • Um adaptador de impressora paralela Cables-to-Go modelo 16899 USB para DB25 é utilizado para ligar a impressora ao computador. O adaptador instala-se automaticamente e não é reconhecido como um dispositivo paralelo ou porta LPT.

  • Agora abra Dispositivos e Impressoras. Clique em Adicionar impressora e seleccione A impressora que pretendo não está listada. No diálogo seguinte escolha Adicionar uma impressora local ou impressora de rede com definições manuais e, no diálogo seguinte, Use uma porta existente. Seleccione uma porta de impressora virtual para USB, seja USB001 ou USB002, da lista e não as opções de porta LPT.

  • A primeira impressora é uma impressora Panasonic KX-P1191 Multi-mode dot matrix. A impressora não está listada na caixa de diálogo que pede um driver e actualizar a lista clicando em Windows Update não ajuda. Uma verificação do site de suporte da Panasonic indica que a impressora não tem qualquer suporte neste momento, mas um especialista em suporte técnico da Panasonic ajudou a descobrir o caminho que levou 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 só vai imprimir para a porta LPT1. A solução é relativamente simples e pode ser integrada directamente no ficheiro de lote que é utilizado para iniciar o programa. Vamos fazer old school e pregar uma partida na nossa impressora: vamos partilhá-la e imprimir para LPT1 dessa forma.

  • Clique com o botão direito do rato na impressora e escolha Propriedades. Partilhe a impressora, não a coloque no directório, crie um pequeno nome de partilha apenas para uma boa medida, e depois assegure-se que o utilizador da máquina cliente está listado na área Grupo ou nome de utilizador sob o separador Segurança.

  • As duas pessoas que vão imprimir para estas impressoras criam o meu cheque de pagamento, por isso dei-lhes direitos de Administrador de Domínio. Isso pode ter sido desnecessário. Ambos são utilizadores no domínio primário mas não no secundário, e eu não queria perder tempo a resolver os problemas da emissão de permissões.

Agora modifique o ficheiro de lote e utilize o comando bem documentado de utilização da rede 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 COMPUTER é o nome do computador e PRINTER é o nome da partilha da impressora. O procedimento funcionou igualmente bem num segundo computador para a impressora HP LaserJet 1100 usando o driver “HP LaserJet 1100 (MS)” fornecido com o Windows 8.1.

– NOTAS –

System Error 5:

Certifique-se de que o utilizador está listado no separador de segurança. “Todos” pode ser removido. São necessários privilégios de administrador do domínio para o utilizador? Provavelmente não, se tudo estiver a correr a partir de um domínio.

System Error 66:

Verifique a sua sintaxe. Provavelmente escreveu mal o nome do computador, da impressora, ou talvez tenha perdido os dois pontos? Só é necessário dois pontos, por cada documentação da Microsoft. A adição de dois pontos desnecessários à lpt1[:] irá causar falha?

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

2
2
2
2010-08-30 20:09:20 +0000

Talvez confira WinPrint :

Tira a impressão padrão produzida por uma aplicação DOS, e a encaminha para uma impressora Windows padrão. Converte página de código, tira páginas vazias, suporta gráficos de BOX DRAWINGS. Funciona em todas as plataformas Windows.

2
2
2
2014-08-27 08:13:02 +0000

Utilize o Programa de Impressão DOS para manipular as suas portas disponíveis para os dispositivos desejados. Pode descarregá-lo a partir desta linha 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 do dosprintui tray, pode obter a lista de portas disponíveis para mapear, depois clique duas vezes na lpt1 ou no botão set e escolha a impressora desejada para mapear nela e clique em ok. BINGO agora pode imprimir para a porta LPT1 e a sua impressora usb irá imprimir isso para si.

0
0
0
2017-12-06 15:24:37 +0000

Eu estava na mesma posição com o software baseado em Clipper empresarial de design personalizado. Olhei para um software de emulação paralela para imprimir para uma impressora usb que funcionava um pouco mas tinha os seus próprios problemas. Superando os 64 Bit win10 nenhum dos problemas era um verdadeiro desafio.

Encontrei o Harbour HMG que, depois de mudar algumas linhas de código recompilou o software da aplicação para 32 bit. Também tenho as minhas aplicações a escrever dados em ficheiros temporários que agarro com o Microsoft Access para colocar alguns relatórios com um formato fantástico. Ah, BTW. Agora as aplicações funcionam em janelas de 64 bits 10 com grandes melhorias na memória e na velocidade. Também, tenho os relatórios enviados para impressoras de linha usb ou jactos de tinta ou o que eu escolher.

0
0
0
2010-08-30 19:03:35 +0000

Existem muitos “adaptadores paralelos aos adaptadores usb” no mercado. Pode obter um online por cerca de 10 dólares, e é provavelmente um bom local para começar.

0
0
0
2010-08-30 19:29:20 +0000

Ainda não disse que hardware está a utilizar, mas assumindo que é um PC Wintel, deve poder comprar um cartão de porta paralela genérico para ele por quase nada. Além disso, pode redireccioná-lo utilizando o NET USE, como sugerido pela Harrymc.