| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Foxpro/Clipper/Dbase > как на clipper сделать вывод на принтер |
| Автор: z100 12.11.2015, 15:29 |
| Подскажите пожалуйста как в языке программирования clipper реализовывается вывод на печать - принтер. Собственно есть некоторая проблема, сейчас расскажу её суть. Под линукс в эмуляторе dos - dosemu запускается программа написанная на clipper берёт данные с базы, формирует файлик (скорее всего текстовый) и отправляет на печать (принтер матричный Epson) Система печати на линуксе lprng. Всё работало нормально пока не поменяли систему печати на cups. После этого перестало печатать. При этом сама печать из командной строки текстового файлика, командой lpr работает что при системе печати cups, что при системе печати lprng. Хочу понять каким образом реализована печать в этой программке написанной на clipper, ведь если из неё вызывается lpr которой передаётся параметром необходимый сформированный файлик, то печать должна работать что при lprng, что при cups. Есть исходник этой программки, его я показать не могу, извините. Сам теоретически знаю Си, практический опыт очень не большой, но найти в этом файлике кусок кода отвечающего за печать не смог. Хотел исходя из способа реализации в этой программе печати найти решение данной проблемы. Подскажите пожалуйста как в языке clipper реализовывается печать. За помощь заранее благодарен! |
| Автор: tzirechnoy 13.11.2015, 11:31 |
| Ковыряйте dosemu, а не Clipper. Clipper тут явно только отпраляет данные в DOS-устройство PRN. DOS, скорее всего, честно пишэт их в (эмулируемый) LPT-порт. А вот куда досэму из эмулятора LPT-порта их отправляет -- я ужэ не помню. Но в любом случае это можно настраивать. Возможно, впрочем, что я несколько ошыбаюсь, и dosemu сама обраатывает полученное через PRN, не отправляя его на эмулируемый порт. Но и в этом случае следует понастраивать dosemu. |
| Автор: lista 6.2.2016, 15:59 |
| см. dosemu.conf у меня для каждого принтера (LPT1 LPT2 LPT3) свой скрип. в нем всЕ и разруливается. Т.е. определяется с какого хоста зашли и на какой принтер печатать. Т.е. можно печатать и на прямую. можно через Самбу... ############################################################################## ## Printer settings # list of (/etc/printcap) printer names to appear as LPT1, LPT2, LPT3 # (not all are needed, empty for none). Default: "lp" # use "" if you want the printer_command (below) free-form (LPT1 only) #$_printer = "lp" $_printer = "/var/lib/dosemu/lpt1 /var/lib/dosemu/lpt2 /var/lib/dosemu/lpt3" # Print command to use. Default: "lpr", for "lpr -P printername". # Sometimes (with CUPS) "lpr -l" is necessary. #$_printer_command = "lpr" #three printer #printer { options "%s" command "/var/lib/dosemu/lpt1" timeout 20 } #printer { options "%s" command "/var/lib/dosemu/lpt2" timeout 20 } #printer { options "%s" command "/var/lib/dosemu/lpt3" timeout 20 } # idle time in seconds before spooling out. Default: (20) # $_printer_timeout = (20) |