При печати любого документа из 1С под Wine в CUPS передается документ с именем "stdin". Это не позволяет нам работать с системой VentaFax, т.к. преобразование номера телефона в TIFF файл ведется принтером VentaFax из имени документа. Пример: Akt_00001_#(495)2223322# -> код:495 телефон:222-33-22 заявка № 2753.
Вызов команды lpr нужно дополнить параметром -T, указывающим название задания.
Добавление к функции CreateSpoolFile дополнительного аргумента, содержащего имя документа, кажется даёт желаемый результат. Теперь правильно оформить патч (изменяемый код пересекается сразу с двумя нашими патчами) и проверить, решает ли проблему.
Заверши пожалуйста к релизу.
Конечно же, результаты потерялись. Несложно и недолго сделать заново. Главный вопрос - как быть с параметром "-T" - он есть не во всех системах?
1. Ну и как мне добиваться, чтобы каждое начатое простое дело было завершено? 2. Я думаю что у команды lpr-cups всегда есть такой параметр. 3. Можно проверять наличие lpr-cups и использовать его при наличии 4. А где нет -T, и что говорят те системы при его передаче?
commit afb676dff8281f1fbccad8487e484f254d18e86b Author: Konstantin Kondratyuk <kondratyuk@etersoft.ru> Date: Mon Oct 13 11:05:35 2008 +0400 gdi32: Add job name field into CreateSpoolFile (fix eterbug #929) В рассылке Etersoft.
Возникла ошибка на Debian 5.0 с использованием lprng по совету нашего саппорта. В команде не принимается пустое имя задачи (или вообще не работает с параметром -T) trace:print:CreateSpoolFile command: '|lpr -T'' -P'hp3055'' ... lpr: missing argument for 'T' Usage: lpr [-Pprinter[@host]] [-A] [-B] [-Cclass] [-Fformat] [-G] [-Jinfo] [-(K|#)copies] [-Q] [-Raccountname] [-Ttitle] [-Uuser[@host]] [-V] [-Zoptions] [-b] [-m mailaddr] [-h] [-i indent] [-l] [-w width ] [-r] [-Ddebugopt ] [--] [ filenames ... ] ... -T title - title for 'pr' (-p) formatting ... Хорошо бы проверить на нашем дебиане и сделать правку.
Думаю, что будет правильным формировать название задание (оно же было, куда делось?) если оно пустое, и всегда передавать заполненное -T.
Не понял, какое было раньше? Раньше не использовался -T, а сейчас -T используется с тем значением, что передаётся в функцию. То есть, возможно с пустым. И что делать, инициализировать пробелом в случае пустого имени?
Я слабо верю, что в Windows бывают задания без имени. Почему пробелом? Всегда можно придумать название, например "Print job"
commit 1504af342babc25b85efa4f1727a2bcdb83a24b2 Author: Konstantin Kondratyuk <kondratyuk@etersoft.ru> Date: Fri Jan 16 15:22:18 2009 +0300 gdi32: Add default print job name (for eterbug #929) Проблема должна исправляться этим патчем, нужна сборка для отправки и проверки.
Проверить не проверили, но теоретически - должно работать. А теоретически нет разницы между теорией и практикой :)
Сборка 40/17 При печати файла trace:print:CreateSpoolFile Got printerSpoolCommand '|lpr -T'C:\Program Files\1Cv77\1SBDemo\' -P'HpTest'' for output device 'LPR:HpTest'