Created attachment 1544 [details] postscript-вывод 1С при печати с разрешением в 203dpi Есть потребность печатать этикетки со штрихкодом. Термопринтер печатает с разрешением 203dpi. Если в настройках принтера (в system-config-printing) выбрать соответствующее разрешение (ppd прилагается), в выходном postscript получаем полную потерю форматирования + отсутствие штрихкода (1.ps). Если использовать отличное от 203dpi разрешение, всё форматирование сохраняется (2.ps), но штрихкод не читается из-за потери тонких линий и слияния соседних жирных линий (2_r203.png). Если бы принтер мог печатать с разрешением 200dpi, то мы получили бы требуемый результат (2_r200.png). Однако, принтер поддерживает только печать с разрешением 203dpi. При этом из Linux-приложения (openoffice.org) печать происходит корректно при любом разрешении.
Created attachment 1545 [details] postscript-вывод 1С при печати с разрешением в 200dpi
Created attachment 1546 [details] эмуляция печати файла 2.ps на устройстве с разрешением в 203dpi Файл 2.ps, распечатанный на устройстве "файл PNG" с разрешением 203dpi (gs -sDEVICE=png16 -sOutputFile=2_r203.png -r203x203 2.ps)
Created attachment 1547 [details] эмуляция печати файла 2.ps на устройстве с разрешением в 200dpi Файл 2.ps, распечатанный на устройстве "файл PNG" с разрешением 200dpi (gs -sDEVICE=png16 -sOutputFile=2_r200.png -r200x200 2.ps)
(In reply to comment #2) > Created an attachment (id=1546) [details] > эмуляция печати на устройстве с > разрешением в 203dpi > > Файл 2.ps, распечатанный на устройстве "файл > PNG" с разрешением 203dpi (gs -sDEVICE=png16 > -sOutputFile=2_r203.png -r203x203 2.ps) > Собственно, это в точности совпадает с тем, что оказывается распечатанным на этикетке. Линии штрихкода сливаются, штрихкод не читается.
Created attachment 1548 [details] PPD принтера
Информация о системе: 1С:Предприятие 8.1.15 WINE@Etersoft 1.0 SQL 1.0.12-eter1.3/1 Product: WINE@Etersoft 1.0 SQL (корпоративная лицензия, коробочная версия) Licensed for ЗАО "Мезон" with registration number 509D-4CCC Contact person: Сергей Олегович Гузиков License expired at 16/03/2010 LSB Version: lsb-4.0-amd64:lsb-4.0-noarch:* Distributor ID: MandrivaLinux Description: Mandriva Linux 2010.0 Release: 2010.0 Codename: adelie Linux linux-ts.shop-1.key 2.6.31.5-server-1mnb #1 SMP Fri Oct 23 01:19:00 EDT 2009 x86_64 Intel(R) Xeon(R) CPU E5420 @ 2.50GHz GNU/Linux
(In reply to comment #0) ... > При этом из > Linux-приложения (openoffice.org) печать происходит > корректно при любом разрешении. А что печатается из OpenOffice при этом? Можно ли сохранить этикетку из 1С и открыть в OOo, распечатав в нём?
Из OpenOffice печатал тестовые документы - чтоб проверить, не виноват ли CUPS. Печатается корректно в любом разрешении (проверял на 200dpi,203dpi,300dpi и 600dpi). Из 1С корректно печатает в 200dpi, 300dpi и 600dpi, и некорректно в 203dpi. В принципе, проблему удалось обойти, настроив cups-драйвер для принтера этикеток (до этого печать шла через Windows с перенаправлением печати (http://www.nixp.ru/articles/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82-%D0%BF%D1%80%D0%B8%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-Win-%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B8-%D0%B8%D0%B7-Linux.html). Настройка заключалась в правке ppd, сводящейся добавлению разрешения 200dpi. Видимо, приоритет бага можно понизить, но сама по себе проблема никуда не делась (нужно править ppd). Конфигурация не предусматривает экспорт в xls, но можно сохранить в mxl.
(In reply to comment #8) > Из OpenOffice печатал тестовые документы - чтоб > проверить, не виноват ли CUPS. Печатается Эти документы включали в себя растровый штрих-код такого же разрешения, как генерирует 1C? ... > Настройка заключалась в правке ppd, > сводящейся добавлению разрешения 200dpi. > Видимо, приоритет бага можно понизить, но > сама по себе проблема никуда не делась > (нужно править ppd). Конфигурация не > предусматривает экспорт в xls, но можно > сохранить в mxl. Можете ли вы приложить сюда mxl, а ведь надо проверять на чём-то.
Created attachment 1549 [details] Печать ценников и этикеток_ Нормальный.mxl
(In reply to comment #9) > (In reply to comment #8) > > Из OpenOffice печатал тестовые документы - чтоб > > проверить, не виноват ли CUPS. Печатается > Эти документы включали в себя растровый > штрих-код такого же разрешения, как > генерирует 1C? Нет, штрихкод я не включал. Но если удалить штрихкод из шаблона в 1С, форматирование точно так же портится при печати на 203dpi > ... > > Настройка заключалась в правке ppd, > > сводящейся добавлению разрешения 200dpi. > > Видимо, приоритет бага можно понизить, но > > сама по себе проблема никуда не делась > > (нужно править ppd). Конфигурация не > > предусматривает экспорт в xls, но можно > > сохранить в mxl. > Можете ли вы приложить сюда mxl, а ведь надо > проверять на чём-то. > Приложил
Created attachment 1552 [details] Скриншот mxl Возникла проблема с воспроизведением ошибки. В присланном Вами mxl файле почему-то не отрисовывается штрихкод (или его нет?). На скриншоте - открытый в windows mxl файл с примером. Что нам нужно чтобы распечатать штрихкод? Ваша конфигурация или какая-та компонента для 1С?
Для печати штрихкодов используется специальная компонента «1С: Печать штрихкодов» (выполненная в виде DLL-библиотеки), которая распространяется на диске ИТС (Работаем с программами) в виде установочного файла (1CBarcode.exe). Её нужно установить отдельно перед началом работы с конфигурацией. Если после установки под Wine компонента не зарегистрировалась автоматически, можно зарегистрировать модуль вручную командой wine regsvr32 'C:\Program Files\1C\1CBarCode\1CBarCod.dll'
Есть подозрение, что результирующий postscript, формируемый wine, не зависит от разрешения принтера. Не могли бы вы сделать оба варианта и сравнить?
Оба постскрипт-файла уже приложены. Они отличаются даже по размеру файла. Кроме того, на скриншоте окна предварительного просмотра 1С при разрешении на принтере 203dpi видно, что штрихкод не формируется.
Created attachment 1566 [details] 1С - предварительный просмотр (разрешение на принтере - 200dpi)
Created attachment 1567 [details] 1С - предварительный просмотр (разрешение на принтере - 203dpi)
К сожалению, проблема снова требует решения. Имеются принтеры этикеток, не имеющие совместимых драйверов под Linux, поэтому приходится подключать их к Windows-машине и печатать c рабочих станций Linux через расшаренный PostScript - принтер, перенаправляющий задание в ghostscript, который отправляет вывод на устройство печати. При таком методе трюк с подменой разрешения 203dpi на 200dpi не проходит, так как битмап, содержащий штрихкод, после масштабирования теряет четкость (см. http://bugs.etersoft.ru/attachment.cgi?id=1546 и http://bugs.etersoft.ru/attachment.cgi?id=1547), и штрихкод перестает читаться сканерами. Таким образом, требуется реализовать печать из 1С на устройствах с разрешением 203dpi, аналогично тому, как она реализована для устройств с разрешением 200dpi, 300dpi и 600dpi.
to night: Воспроизведи, пожалуйста в какой нибудь бутылке. Для печати используется компонента «1С: Печать штрихкодов» - 1CBarcode.exe. Печать на принтер с разрешением 203 dpi. См. комментарий #13.
Нужен принтер на cellar с постскриптом из 5-го коммента.
5cprntДобавил принтер с именем 5cprnt и ppd-файлом из пятого камента.
Бутылка bugs/5163 Файл на диске c: Печатаем на принтер 5cprnt Результаты проверяем на диске z: Менять разрешение с 203dpi на 200dpi можно в /etc/cups/ppd/ в соответствующем файле в строке *DefaultResolution:
Ошибка в конфигурационном файле принтера. Вместо *DefaultResolution: 203dpi Надо указывать: *DefaultResolution: 203x203dpi Если оба обозначения одинаково работают под windows, то скорее всего это проблема wine. Могу поправить разбор ppd файла.
Большое спасибо, я поправил ppd, теперь генерируется корректный PostScript. Строго говоря, следует поправить разбор ppd, поскольку в спецификации явно указано на возможность альтернативного указания разрешения в формате HHHdpi для симметричных разрешений: "The name argument must conform to the resolution naming conventions in the Adobe PPD file specification, either HHHdpi for symmetric resolutions or HHHxVVVdpi for asymmetric resolutions." - http://www.cups.org/documentation.php/ref-ppdcfile.html#Resolution воспроизвести ситуацию на Windows пока нет возможности, но при случае попробую.
(In reply to comment #24) > Большое спасибо, я поправил ppd, теперь > генерируется корректный PostScript. Строго Отлично. > говоря, следует поправить разбор ppd, Так и сделаем.
Подготовил и отправил патч на winehq.
Патч отправил в нашу рассылку. Прикладывать только на eter-1.0.12, т.к. с оригинальным wine эта ветка мержиться больше не будет.
Закрываю, как решённую.