Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2014, 00:31   #1
X-Roman
Пользователь
 
Регистрация: 26.03.2008
Сообщений: 23
По умолчанию Печать точно по миллиметрам

Скажите, пожалуйста. Надо выдать на печать, соблюдая точно указанные размеры.
Я в данном случае беру dpi:
Код:
int presolution = printDocument1.DefaultPageSettings.PrinterResolution.X
Вычисляю количество необходимых точек устройства:
Код:
private int getPixelFromMM( float mm, int dpi )
{
      return (int)( (mm / 25.4) * dpi );
}
Выдаю на печать таким образом:
Код:
        private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {

            Pen p = new Pen( Color.Black, 2 );
            int presolution = printDocument1.DefaultPageSettings.PrinterResolution.X;
            e.Graphics.DrawRectangle(
                p, getPixelFromMM(30, presolution), getPixelFromMM(30, presolution),
                getPixelFromMM( 102, presolution ),
                getPixelFromMM( 12, presolution )
                                       );
        }
И вместо, скажем, 12 миллиметров по высоте, измерив линейкой, получаю 71.5 миллиметров.
Что я упустил?

Последний раз редактировалось Stilet; 17.04.2014 в 08:13.
X-Roman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ваша тема точно будет удалена, если... rpy3uH Помощь студентам 0 22.11.2011 11:25
печатать на каждой странице точно 20 столбцов roborrr Microsoft Office Excel 0 29.04.2011 12:50
Sleep() работает не точно, как точнее 8Observer8 Win Api 13 24.04.2011 19:47
Ищем! На этом форуме точно должны Nicky_meloman Фриланс 0 16.12.2010 00:40
Почему мат процессор не считает точно sin(pi) = 0? FPU128bit Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 27.10.2009 17:03