Я сталкиваюсь с проблемой во время печати изображений с использованием Gdiplus :: Graphics :: DrawMage на HDC Windows, созданном из драйвера «Microsoft Print to PDF». Основная проблема состоит в том, что на выходные настройки принтера влияют настройки масштабирования DPI дисплея. Однако, когда пользователь изменяет дисплей DPI на 120 (размер текста 125%) или другие нестандартные значения, изображения неверно масштабируются. Например, исходное изображение 100x100 пикселей приводит к тому, что на странице печатается только около 80x80 пикселей, как если бы GDI+ неправильно применяет масштабирование дисплея к выходу печати. Для JPEGS я обнаружил, что обновление данных ESIF для установления значения DPI (72, 96, 120 и т. Д.) Решает проблему, позволяя правильно печатать изображение даже с установленным DPI DPI на 120%. However, this trick doesn't work for PNGs since they lack DPI metadata.
Here’s what I’ve tried so far:
- Calling Gdiplus::Graphics::SetPageScale
- Using Gdiplus::Graphics::ResetTransform
Ни один из них не решил проблему. Похоже, что GDI+ применяет коэффициент масштабирования дисплея к изображению во время процесса печати, чего не должно произойти. Любые обходные пути или исправления, особенно для файлов PNG, будут очень оценены!
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -affects-p