Comment simuler une imprimante parallèle (LPT) avec une imprimante USB?

18

J'ai un logiciel hérité qui n'imprime que sur des imprimantes connectées via un port LPT. Cependant, la machine que je dois utiliser n'a pas de port parallèle. De plus, mon imprimante est un périphérique USB.

Comment puis-je faire croire à mon ordinateur que mon imprimante USB est connectée au port lpt?

De plus, c'est pour un bureau. J'aurai des droits d'administrateur lors de la mise en œuvre de la solution de contournement, mais je recherche une solution qui fonctionne pendant qu'un utilisateur «normal» est connecté après que tout est configuré.

Dane O'Connor
la source
1
Je pense que vous voulez dire le port LPT , pas le port LTP. LPT signifie "Line Print Terminal" et est synonyme de "parallèle" en référence aux ports d'imprimante. Il est intéressant de noter qu'il existe une balise LTP. Cela peut-il être changé? Ou peut-être que je manque quelque chose.
boot13
@ boot13, vous avez raison.
Dane O'Connor

Réponses:

21

Vous pouvez tromper Windows en utilisant l'imprimante USB comme une imprimante factice "réseau" connectée à LPT1.

Partager l'imprimante USB

Utilisez un nom de partage facile à retenir, tel que "Imprimante".

Connectez l'imprimante partagée en tant que LPT1

NET USE LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES
harrymc
la source
5
Vous n'avez pas besoin de jouer avec l'adaptateur de bouclage. Installez simplement l'imprimante comme d'habitude à l'aide de la connexion USB. Partagez-le ensuite. Utilisez ensuite NET USE comme ci-dessus.
Alan B
+1 pour l' NET USEastuce "Partager et ", bien que l'adaptateur de bouclage ne soit pas nécessaire. Une chose à noter, si l'utilisateur n'a pas de mot de passe sur son compte, vous devez modifier la stratégie de sécurité locale (ou la clé de registre appropriée) pour que cela fonctionne.
afrazier
J'ai réussi à faire toutes les étapes mais si mon PC n'a pas de port parallèle, quand j'utilise net use LPT2 \\Computer-9313\Parallel /PERSISTENT:YESj'obtiens The command completed succesfullymais je ne vois pas LPT2 sur les périphériques matériels donc je ne connais pas l'adresse de celui-ci.
Andres
1
@Andres avez-vous oublié de taper un point-virgule après LPT2 comme ci-dessus?
phuclv
1
C'est un deux-points, pas un point-virgule (; vs:)
Ian Macintosh
5

L'utilisation d'un adaptateur USB vers parallèle n'a aucun sens. Ici, nous parlons d'utiliser un très ancien logiciel hérité sur du matériel avec des connexions USB uniquement. Dans mon cas, une imprimante d'étiquettes ZEBRA.

La solution dans mon cas était.

  1. Installez l'imprimante USB avec ses pilotes (juste pour trouver sur quel port USB est connecté)
  2. Changez le port du pilote en FICHIER (et libérez le port USB)
  3. Installez un pilote générique / texte uniquement et remplacez le port par le même port USB logique comme indiqué au point 1
  4. Partagez l'imprimante générique / texte uniquement afin de la rendre facilement visible dans VBA
  5. Installez l'adaptateur Microsoft Loopback sur une adresse IP fixe inutilisée (sinon votre imprimante ne sera pas visible lorsque le câble sera déconnecté)
  6. Attribuer un port LPTx: comme expliqué précédemment par la ligne de commande (c'est pour chaque logiciel qui a besoin d'un ancien LPT)

Avec quelques lignes de code, vous pourrez envoyer des codes ASCII à l'imprimante tels qu'ils étaient utilisés par le passé.

Vous pouvez désormais imprimer facilement en VBA (testé avec Windows 7 64 bits et l'imprimante ZMra 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
Angelo Gabriele
la source
2

Consultez peut-être WinPrint :

Prend la sortie d'imprimante standard produite par une application DOS et la transmet à une imprimante Windows par défaut. Convertit la page de codes, supprime les pages vides, prend en charge les caractères BOX DRAWINGS. Fonctionne sur toutes les plateformes Windows.

Ƭᴇcʜιᴇ007
la source
2

Utilisez le programme d'impression DOS pour manipuler vos ports disponibles vers les périphériques souhaités. Vous pouvez le télécharger à partir de ce lien 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)

Exécutez d'abord dosprint et dosprintui en tant qu'administrateur, puis double-cliquez sur l'icône de la barre d'état de dosprintui, vous pouvez obtenir la liste des ports disponibles à mapper, puis double-cliquez sur lpt1 ou sur le bouton set et choisissez l'imprimante que vous souhaitez mapper dessus et cliquez sur D'accord. BINGO vous pouvez maintenant imprimer sur le port LPT1 et votre imprimante USB l'imprimera pour vous.

Govinda Thapa
la source
2

Les programmes DOS sont toujours utilisés dans le monde des affaires. Des conseils sur la façon de les faire fonctionner correctement sur une plate-forme informatique moderne sont répandus sur le Web. Voici ce qui a fonctionné pour moi.

Le programme DOS 16 bits avec lequel nous devons travailler réside sur un serveur Windows 2003 32 bits qui sera bientôt supprimé. D'ici là, un partage avec le programme est mappé sur deux machines clientes 32 bits du domaine principal avec la stratégie de groupe. Un raccourci vers le fichier .cmd qui démarre le programme est placé manuellement sur les clients, également sur le domaine principal. Le programme fonctionne bien sur Windows 8.1. Un peu un compromis pour être sûr, mais les machines seront mises à niveau vers Windows 8.1 64 bits lorsque le programme DOS, qui s'exécute à partir du domaine secondaire, est retiré.

L'impression à partir du programme présente le plus grand défi. Deux imprimantes parallèles différentes sont utilisées avec ce programme, mais le programme imprime sur un seul port et il n'y a aucune option pour modifier ce comportement. Besoin d'imprimer un chèque sur l'imprimante laser? Il doit être connecté au port LPT1. Besoin d'imprimer un vidage de données sur l'imprimante matricielle? Il doit également être connecté au port LPT1. Deux personnes travaillent quotidiennement avec ce programme, nous allons donc utiliser leurs ordinateurs, un pour chaque imprimante. Installons la première imprimante:

  • Si l'ordinateur possède un port physique DB-25 (parallèle), vous pouvez le désactiver dans le BIOS. Windows 8.1 ne le prend pas en charge et nous n'en avons pas besoin.

  • Un adaptateur d'imprimante parallèle USB vers DB25 Cables-to-Go modèle 16899 est utilisé pour connecter l'imprimante à l'ordinateur. L'adaptateur s'installe automatiquement et n'est pas reconnu comme un périphérique parallèle ou un port LPT.

  • Ouvrez maintenant Périphériques et imprimantes. Cliquez sur Ajouter une imprimante et sélectionnez L'imprimante que je veux n'est pas répertoriée. Dans la boîte de dialogue suivante, choisissez Ajouter une imprimante locale ou une imprimante réseau avec des paramètres manuels et, dans la boîte de dialogue suivante, utilisez un port existant. Sélectionnez un port d'imprimante virtuelle pour USB, USB001 ou USB002, dans la liste et non les options du port LPT.

  • La première imprimante est une imprimante matricielle multimode Panasonic KX-P1191. L'imprimante n'est pas répertoriée dans la boîte de dialogue qui demande un pilote et la mise à jour de la liste en cliquant sur Windows Update n'aide pas. Une vérification du site d'assistance de Panasonic indique que l'imprimante n'est pas entièrement prise en charge à ce stade, mais un spécialiste de l'assistance technique de Panasonic a aidé à explorer la piste qui a conduit au pilote Epson FX Series 1 (80) inclus avec Windows 8.1. Cela fonctionne parfaitement.

Maintenant, l'imprimante est installée. Mais il se trouve sur le port USB001 et le programme n'imprimera que sur le port LPT1. La solution est relativement simple et peut être intégrée directement dans le fichier batch utilisé pour démarrer le programme. Allons à l'ancienne et jouons un tour sur notre imprimante: nous le partagerons et imprimerons sur LPT1 de cette façon.

  • Cliquez avec le bouton droit sur l'imprimante et choisissez Propriétés. Partagez l'imprimante, ne la répertoriez pas dans le répertoire, créez un nom de partage court juste pour faire bonne mesure, puis assurez-vous que l'utilisateur de l'ordinateur client est répertorié dans la zone Groupe ou nom d'utilisateur sous l'onglet Sécurité.

  • Les deux personnes qui imprimeront sur ces imprimantes créeront mon chèque de règlement, je leur ai donc donné les droits d'administrateur de domaine. Cela n'était peut-être pas nécessaire. Les deux sont des utilisateurs sur le domaine principal mais pas le secondaire, et je ne voulais pas passer du temps à résoudre le problème des autorisations.

Modifiez maintenant le fichier batch et utilisez la commande net use bien documentée pour implémenter la solution d'impression:

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

Où ORDINATEUR est le nom de l'ordinateur et IMPRIMANTE est le nom de partage de l'imprimante. La procédure a également bien fonctionné sur un deuxième ordinateur pour l'imprimante HP LaserJet 1100 à l'aide du pilote «HP LaserJet 1100 (MS)» fourni avec Windows 8.1.

-- REMARQUES --

Erreur système 5:

Assurez-vous que l'utilisateur est répertorié sous l'onglet sécurité. "Tout le monde" peut être supprimé. Les privilèges d'administrateur de domaine sont-ils requis pour l'utilisateur? Probablement pas, si tout fonctionne à partir d'un seul domaine.

Erreur système 66:

Vérifiez votre syntaxe. Vous avez probablement mal orthographié le nom de l'ordinateur, de l'imprimante ou peut-être manqué les deux points? Un seul deux-points est nécessaire, selon la documentation Microsoft. L'ajout de deux points inutiles à lpt1 [:] provoquera-t-il un échec?

Tout sur l'utilisation nette: https://technet.microsoft.com/en-us/library/bb490717.aspx

blinkdt
la source
0

Il existe de nombreux "adaptateurs parallèles aux ports USB" sur le marché. Vous pouvez en obtenir un en ligne pour environ 10 $, et c'est probablement un bon point de départ.

Joe Internet
la source
Le problème n'est pas de connecter l'imprimante à l'ordinateur - elle est connectée. Le problème consiste à faire en sorte que l'imprimante USB agisse comme si elle était connectée à un port LTP (un port LTP virtuel).
Dane O'Connor
Mais il n'a pas de port parallèle et a une imprimante USB.
David dit de réintégrer Monica
0

Vous n'avez pas dit quel matériel vous utilisez, mais en supposant que c'est un PC Wintel, vous devriez pouvoir acheter une carte de port parallèle générique pour presque rien. En dehors de cela, vous pouvez le rediriger en utilisant NET USE, comme suggéré par harrymc.

boot13
la source
0

J'étais dans la même position avec un logiciel basé sur Clipper. Nous avons examiné un logiciel d'émulation parallèle pour imprimer sur une imprimante USB qui fonctionnait quelque peu mais qui avait ses propres problèmes. Surmonter les problèmes sans dos 64 bits win10 était un vrai défi.

J'ai trouvé Harbor HMG qui, après avoir changé quelques lignes de code, a recompilé le logiciel d'application en 32 bits. Mes applications écrivent également des données dans des fichiers temporaires que je saisis avec Microsoft Access pour publier des rapports formatés impressionnants. Oh, BTW. Maintenant, les applications fonctionnent dans des fenêtres 64 bits 10 avec des améliorations majeures de la mémoire et de la vitesse. De plus, j'ai les rapports envoyés aux imprimantes ligne USB ou aux jets d'encre ou tout ce que je choisis.

Rob S
la source