На печать выводится пустота в черных рамках. Воспроизвести можно в бутылке rt/gemoytel. Там есть файл на диске C:\Инструкция по созданию нового бизнес-процесса.mxl его нужно открыть через 1С и напечатать. WINE@Etersoft 1.0.12 eter7.6/eter13
Картинки там в формате png.
Установки ie и запуск через wineole не помог, думаю что надо смотреть библиотеку pngformat
У меня та же проблема, временно решил следующим способом: 1. На машине с Windows вставил рисунок в документ Excel, затем этот документ вставил в форму отчета 1С, сделал так, что-бы был виден рисунок. 2. В wine сместил рисунок по осям, при печати рисунок немного смещается.
Для печати изображений использовалась функция PSDRV_SetDIBits и для версий 8.0 все работает. В 8.2 что-то изменили в 1С и теперь данная функция перестала использоваться JPG/PNG перестали отображаться. В Windows проблем с печатью нет на любых версиях. Аналогичная проблема была здесь http://bugs.etersoft.ru/show_bug.cgi?id=6069
работаю над багой
Нужно проверить на eterhack
WINE@Etersoft 1.0 SQL 1.3.27/1.7.1-eter1.12/3 wine@eterhack bottle 1c/bug42 Результат: c:/Program Files/1cv82/8.2.13.205/job_3394-260.pdf Воспроизвелось.
приступил
версия, что картинка не печатается из-за того что выходит за пределы листа не подтвердилась
в случае с 1с8.0 все работает даже на eterhack
когда печать происходит через 1с8.0 помимо рисования контура и заливки квадратов периодически выполняется функция PSDRV_PutImage, когда же печатается через 1с8.2 эта функция не вызывается ни разу, все остальные функции рисования отрабатывают.
PSDRV_PutImage вызывается в nulldrv_StretchBlt, пока не удалось выяснить почему в одной версии происходит вызов а в другой нет.
коммит Ильи Шпигоря 905a53bd92ce670cd4686bc73cf73ba325efd166 похож на эту проблему. (не связан, просто похож)
в старой версии 1с функция nulldrv_StretchBlt вызывалась напрямую, в ней происходил вызов PSDRV_PutImage - все работало. в 1с82 функция nulldrv_StretchBlt вызывается через иксы в ней вызова функции рисования не происходит. ни PSDRV_PutImage, ни X11DRV_PutImage. почему так, пока не очень понятно
на wwo бага также воспроизвелась. видимо, она действительно связана с тем, что в 1с поменялся способ печати
в 1с82 используется xrenderdrv_PutImage
проблема именно в функции, которая занимается помещением картинки, а не получением. поскольку и в старой и в новой версии 1с функция получения работает одна и та же. отличия в печати на старой новой версии сводятся к функции putimage
пока не ясно почему image не помещается на место. пробовал убрать все кроме if (hbitmap) return X11DRV_PutImage( dev, hbitmap, clip, info, bits, src, dst, rop ); dev = GET_NEXT_PHYSDEV( dev, pPutImage ); return dev->funcs->pPutImage( dev, hbitmap, clip, info, bits, src, dst, rop ); не помогло
новая версия, что проблема связана с функцией копирования copy_image_bits. поскольку hbitmap=0.
версия с copy_image_bits не подтвердилась
чтобы посмотреть последовательность вызова, нужно отключить свой обработчик прерывания 1с - NTSTATUS raise_exception. бага про отключение обработчика исключений 1990, она не доделана, но в каком-то виде все же работала. попробую посмотреть на 1.0.12. там ошибка воспроизводится точно так же, но работа с печатью попроще.
to @kondratyuk: Проверил локально на testing WINE@Etersoft 1.0 SQL 1.0.12-eter14.7/28 Установка gdiplus через winetricks решает проблему с печатью png, ровно как и проблему с черной заставкой при запуске программы.
Патч приложен
gdiplus не установлен eterhack bottle 1c82/5892 WINE@Etersoft SQL 2.0.0-eter3.4/9 В пустой конфигурации открываю файл c:/5892/Инструкция по созданию нового бизнес-процесса.mxl он содержит картинку png. Печатаю. Далее в этом файле картинку меняю на другие форматы (gif,jpg,bmp) и печатаю каждую. Все корректно. Результаты печати в этой же бутылке.
у меня с приложенным патчем картинки напечатались. бутылка rt/gemoytel. gdiplus при этом установлен не был
(В ответ на comment #29) закрываю.
нет не работает.