Как имитировать параллельный (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
harrymc
источник
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.

Ƭᴇcʜιᴇ007
источник
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

blinkdt
источник
0

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

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

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

boot13
источник
0

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

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

Роб С
источник