LPT печать из DOS-задач
Некоторые DOS-задачи некорректно функционируют в Wine, но тем не менее, для успешного перевода организации на СПО необходимо их нормальное функционирование. Основной же проблемой является печать на LPT-принтерах из таких программ.
Для того, чтобы запустить требуемую DOS-задачу на Linux и обеспечить ей поддержку печати, следует выполнить такие действия:
- Установите dosbox из изходников с оффициального сайта или репозитория дистрибутива.
- Создайте папку ~/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), то выполнять отправку на печать, а после - удалять его.
Автор оригинального решения - Иван Пулькин