Summary: | Печать линий в 1С | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Денис Баранов <baraka> |
Component: | Печать ; Диалог печати | Assignee: | Илья Шпигорь <shpigor> |
Status: | CLOSED FIXED | QA Contact: | Денис Баранов <baraka> |
Severity: | minor | ||
Priority: | P3 | CC: | lav, night, vitperov |
Version: | unspecified | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | 11037, 11189 | Связано с: | 664 |
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 3932, 7391 | ||
Attachments: |
Пример ошибки
Реестр документов в Windows Реестр документов в Wine Реестр документов в Wine с патчем |
Description
Денис Баранов
2009-07-29 21:53:31 MSD
В этом случае а) не будет обращений к неинициализированной памяти (мусору), которая ведёт к падению б) Линии будут нормально чёрными Если конечно я правильно понимаю проблему. Created attachment 1295 [details]
Реестр документов в Windows
Created attachment 1296 [details]
Реестр документов в Wine
Выложил патч. Проблема с функцией StretchBlt. В случае работы с DC принтера она вызывает StretchDIBits. Перед этим происходит заполнение bits. В данном случае этого сделать не удается. Bitmap, который находится в hdcSrc, имеет пустое bmBits равное NULL. Не совсем понятно почему так происходит, ведь в windows пунктирная линия копируется. Из-за этого в bits оказывается мусор, который и выводится на печать. Решение заключается в проверке результата работы GetDIBits. Если возвращаемое значение равно 0, тогда область памяти bits заполняется нулями. Created attachment 1300 [details]
Реестр документов в Wine с патчем
После приложения патча линии выглядят так.
WINE@Etersoft 1.0 SQL 1.0.11-eter8.3/4 Печатается корректно. Линии нормально чёрные. Только смущает их неодинаковая толщина. Закрываю. |