Как имитировать параллельный (LPT) принтер с USB-принтером?


18

У меня есть устаревшее программное обеспечение, которое печатает только на принтерах, подключенных через порт LPT. Однако машина, которую мне нужно использовать, не имеет параллельного порта. Плюс мой принтер - это USB-устройство.

Как заставить мой компьютер думать, что мой USB-принтер подключен к порту lpt?

Далее это для офиса. У меня будут права администратора при реализации обходного решения, но я стараюсь найти решение, которое работает, когда «обычный» пользователь регистрируется после того, как все настроено.


1
Я думаю, что вы имеете в виду порт LPT , а не порт LTP. LPT означает «Терминал печати линии» и является синонимом «параллельного» при обращении к портам принтера. Интересно, что есть тег LTP. Можно ли это изменить? Или, может быть, я что-то упустил.
— boot13

@ boot13, ты прав.
— Дейн О'Коннор

Ответы:


21

Вы можете обмануть Windows, используя USB-принтер в качестве фиктивного «сетевого» принтера, подключенного к LPT1.

Поделитесь USB принтером

Используйте легко запоминающееся имя ресурса, например «Принтер».

Подключите общий принтер как LPT1

NET USE LPT1: \\[Computer-Name]\Printer /PERSISTENT:YES

5
Вам не нужно возиться с Loopback Adapter. Просто установите принтер как обычно, используя USB-соединение. Тогда поделись этим. Затем используйте NET USE, как указано выше.
— Алан Б

+1 за NET USEтрюк "Поделиться и ", хотя петлевой адаптер не нужен. Стоит отметить, что если у пользователя нет пароля к своей учетной записи, вам нужно изменить локальную политику безопасности (или соответствующий раздел реестра), чтобы это работало.
— afrazier

Мне удалось выполнить все шаги, но если на моем компьютере нет параллельного порта, при использовании net use LPT2 \\Computer-9313\Parallel /PERSISTENT:YESя получаю, The command completed succesfullyно не вижу LPT2 на аппаратных устройствах, поэтому не знаю его адрес.
— Андрес

1
@Andres Вы забыли ввести точку с запятой после LPT2, как указано выше?
— phuclv

1
Это двоеточие, а не точка с запятой (; против:)
— Ян Макинтош

5

Использование адаптера USB-параллельный не имеет никакого смысла. Здесь мы говорим об использовании очень старого устаревшего программного обеспечения на оборудовании с подключением только через USB. В моем случае это принтер этикеток ZEBRA.

Решение в моем случае было.

  1. Установите USB-принтер с его драйверами (просто чтобы узнать, к какому USB-порту подключен)
  2. Измените порт драйвера на ФАЙЛ (и освободите порт USB)
  3. Установите драйвер Generic / Text Only и измените порт на тот же логический порт USB, который показан в пункте 1
  4. Совместно использовать принтер «Общий / только текст», чтобы его было легко увидеть в VBA.
  5. Установите адаптер Microsoft Loopback на фиксированный неиспользуемый IP-адрес (иначе ваш принтер не будет виден при отключении кабеля)
  6. Назначьте порт LPTx: как описано ранее в командной строке (это для каждого ПО, которому требуется старый LPT)

С помощью нескольких строк кода вы сможете отправлять коды ASCII на принтер, как это было в прошлом.

Теперь вы можете легко печатать в VBA (протестировано на 64-битной Windows 7 и принтере 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

2

Возможно, проверьте WinPrint :

Получает стандартный вывод на принтер, созданный приложением DOS, и перенаправляет его на принтер Windows по умолчанию. Преобразует кодовую страницу, удаляет пустые страницы, поддерживает символы BOX DRAWINGS. Работает на всех платформах Windows.


2

Используйте DOS Print Program для манипулирования вашими доступными портами на нужные устройства. Вы можете скачать его по этой ссылке 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)

Сначала запустите dosprint и dosprintui с правами администратора, затем дважды щелкните значок на панели задач dosprintui, чтобы получить список доступных портов для сопоставления, затем дважды щелкните lpt1 или кнопку set и выберите нужный принтер для сопоставления с ним и нажмите Ok. BINGO теперь вы можете печатать на порт LPT1, и ваш USB-принтер распечатает это для вас.


2

DOS-программы до сих пор используются в мире бизнеса. Советы о том, как заставить их работать должным образом на современной вычислительной платформе, широко распространены в Интернете. Вот что сработало для меня.

16-разрядная программа DOS, с которой нам нужно работать, находится на 32-разрядном сервере Windows 2003, который вскоре будет удален. До этого общий ресурс программы сопоставляется на двух 32-разрядных клиентских компьютерах из основного домена с помощью групповой политики. Ярлык для файла .cmd, который запускает программу, размещается вручную на клиентах, также в основном домене. Программа хорошо работает на Windows 8.1. Конечно, это немного компромисс, но машины будут обновлены до 64-битной Windows 8.1, когда программа DOS, которая запускается из вторичного домена, будет удалена.

Печать из программы представляет собой самую большую проблему. В этой программе используются два разных параллельных принтера, но программа печатает только на один порт, и нет никакой возможности изменить это поведение. Нужно распечатать чек на лазерный принтер? Он должен быть подключен к порту LPT1. Нужно распечатать дамп данных на матричный принтер? Он также должен быть подключен к порту LPT1. С этой программой ежедневно работают два человека, поэтому мы будем использовать их компьютеры, по одному для каждого принтера. Давайте установим первый принтер:

  • Если компьютер имеет физический (параллельный) порт DB-25, вы можете отключить его в BIOS. Windows 8.1 не будет поддерживать это, и нам это не нужно.

  • A Cables-to-Go модель 16899 Адаптер параллельного принтера USB-DB25 используется для подключения принтера к компьютеру. Адаптер устанавливается автоматически и не распознается как параллельное устройство или порт LPT.

  • Теперь откройте Устройства и принтеры. Нажмите Добавить принтер и выберите нужный принтер, которого нет в списке. В следующем диалоговом окне выберите «Добавить локальный принтер или сетевой принтер с ручными настройками» и в следующем диалоговом окне «Использовать существующий порт». Выберите виртуальный порт принтера для USB, USB001 или USB002, из списка, а не параметры порта LPT.

  • Первый принтер - это многорежимный матричный принтер Panasonic KX-P1191. Принтер не указан в диалоговом окне, запрашивающем драйвер, и обновление списка путем нажатия Центра обновления Windows не помогает. Проверка сайта поддержки Panasonic показывает, что принтер на данный момент полностью не поддерживается, но специалист службы технической поддержки Panasonic помог разобраться в том, что привело к драйверу Epson FX Series 1 (80), включенному в Windows 8.1. Работает отлично.

Теперь принтер установлен. Но он находится на порту USB001, и программа будет печатать только на порт LPT1. Решение относительно простое и может быть интегрировано прямо в пакетный файл, который используется для запуска программы. Давайте возьмем старую школу и подшучиваем над нашим принтером: мы поделимся им и напечатаем на LPT1 таким образом.

  • Щелкните правой кнопкой мыши принтер и выберите «Свойства». Предоставьте общий доступ к принтеру, не перечисляйте его в каталоге, просто создайте короткое имя общего ресурса, а затем убедитесь, что пользователь клиентского компьютера указан в группе или в области имени пользователя на вкладке «Безопасность».

  • Два человека, которые будут печатать на этих принтерах, создают мою зарплату, поэтому я дал им права администратора домена. Это могло быть ненужным. Оба являются пользователями в основном домене, но не во втором, и я не хотел тратить время на устранение неполадок с разрешениями.

Теперь измените пакетный файл и используйте хорошо документированную команду net use для реализации решения печати:

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

Где COMPUTER - это имя компьютера, а PRINTER - это общее имя принтера. Процедура одинаково хорошо работала на втором компьютере для принтера HP LaserJet 1100 с использованием драйвера «HP LaserJet 1100 (MS)», поставляемого с Windows 8.1.

-- ПРИМЕЧАНИЯ --

Системная ошибка 5:

Убедитесь, что пользователь указан на вкладке безопасности. «Все» могут быть удалены. Требуются ли для пользователя права администратора домена? Вероятно, нет, если все работает с одного домена.

Системная ошибка 66:

Проверьте свой синтаксис. Вы, вероятно, неправильно написали имя компьютера, принтера или, возможно, пропустили двоеточие? В соответствии с документацией Microsoft требуется только одна двоеточие. Будет ли добавление ненужного двоеточия в lpt1 [:] вызвать сбой?

Все о сетевом использовании: https://technet.microsoft.com/en-us/library/bb490717.aspx


0

На рынке существует множество «параллельных USB-адаптеров». Вы можете получить один онлайн приблизительно за 10 $, и это - вероятно, хорошее место, чтобы начаться.


Проблема не в том, что принтер подключен к компьютеру - он подключен. Проблема заключается в том, чтобы заставить USB-принтер работать так, как будто он подключен к порту LTP (виртуальный порт LTP).
— Дейн О'Коннор

Но у него нет параллельного порта, и у него есть USB-принтер.
— Дэвид говорит восстановить Монику

0

Вы не сказали, какое аппаратное обеспечение вы используете, но, предполагая, что это ПК Wintel, вы должны иметь возможность купить для него обычную карту параллельного порта практически даром. Кроме того, вы можете перенаправить его с помощью NET USE, как предлагает harrymc.


0

Я был в том же положении с программным обеспечением, разработанным на заказ для Clipper. Посмотрел какое-то параллельное программное обеспечение для эмуляции, чтобы печатать на USB-принтере, который работал, но имел свои проблемы. Преодоление 64-битной Win10 без проблем было настоящим испытанием.

Я нашел Harbour HMG, который после изменения нескольких строк кода перекомпилировал приложение в 32-битную версию. Я также заставляю свои приложения записывать данные во временные файлы, которые я беру в Microsoft Access, чтобы выпустить несколько великолепных отформатированных отчетов. О, кстати. Теперь приложения работают в 64-битных окнах 10 с существенными улучшениями в памяти и скорости. Кроме того, я отправляю отчеты на линейные USB-принтеры или на струйные принтеры или что-то другое.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.