LPT печать из DOS-задач

Материал из База знаний Etersoft
Перейти к: навигация, поиск

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

Для того, чтобы запустить требуемую DOS-задачу на Linux и обеспечить ей поддержку печати, следует выполнить такие действия:

  • Создайте папку ~/dos и перейдите в нее.
  • Запустите dosbox и выгрузите конфиг эмулятора. Для этого внутри его командной строки выполните:
config --writeconf dosbox.conf
  • В дальнейшем команда для запуска dosbox будет выглядеть следующим образом:
dosbox -conf ~/dos/dosbox.conf

Для того, чтобы иметь возможность запускать эмулируемую программу с помощью ярлычка на рабочем столе, следует написать специальный файл dos.desktop такого содержания:

[Desktop Entry]
Name='DOS program'
Name[ru]='DOS-задача'
Type=Application
Exec=dosbox -conf ~/dos/dosbox.conf

Поместите получившийся файл в каталог ~/.local/share/applications

  • Создайте каталог ~/dos/c и поместите в него файл PRN2FILE.COM, а так же каталог prog, содержащий требуемую DOS-задачу.
  • Модифицируйте секцию [autoexec] в ~/dos/dosbox.conf для осуществления автозапуска программы при старте эмулятора:
[autoexec]
echo off
mount c: /home/username/c
c:
cls
prn2file.com
cd progdir
progname.exe
cls
  • После попытки печати в каталоге образуется некий файл, который необходимо отправить на печать уже из Linux. Делается это такой командой:
cat filename > /dev/lp0

При этом у пользователя должны быть права на запись в устройство /dev/lp0. Для автоматизации этого процесса можно написать скрипт, который проверяет существование файла, и если он существует, и не занят (lsof), то выполнять отправку на печать, а после - удалять его.


Автор оригинального решения - Иван Пулькин