2015-02-04 2 views
0

У меня есть растровое изображение, и я хочу поместить его в excel. Я использовал этот код, который я нашел here:Как управлять масштабированием Excel растровых изображений

xlWorkSheet.Shapes.AddPicture("C:\\filesystem\\mb2.bmp", 
    msoFalse, msoCTrue, 0, 0, 518, 390); 

Но полученное изображение 1.333 раза шире и выше. ОК, поэтому я могу просто умножить размеры на 0.75, и я получаю изображение в формате Excel с требуемыми размерами.

xlWorkSheet.Shapes.AddPicture("C:\\filesystem\\mb2.bmp", 
    msoFalse, msoCTrue, 0, 0, (float)(518*0.75), (float)(390*0.75)); 

Но это число 0.75 сидит жестко действительно беспокоит меня. Тем более, что я видел this question, в котором отношение op равно 0.76. Зная, что этот код необходимо запускать на любом количестве систем с разными дисплеями, я хочу знать, как получить коэффициент программно.

Отчасти это связано с this question, который имеет отношение к копированию-вставке без кода.

+0

Вы хотите, чтобы это относительно окна или относительно их монитора? –

+0

Это файл, который будет напечатан в виде таблицы данных. Способ настройки страницы - это то, что нам нужно в пикселях. – djv

ответ

0

Если вы говорите о печати, дисплей не имеет значения.

Размеры изображения должны быть относительно размера бумаги. Значения размера в методе AddPicture находятся в точках и только слабо связаны с пикселями. Точками являются единицы измерения, которые имеют смысл для вашего принтера. Приложение переводит точки на пиксели для вас, поэтому вам не нужно об этом беспокоиться.

Вы можете использовать методы InchesToPoints или CentimetersToPoints объекта Application, чтобы оформить размер изображения до размера.

+0

Выглядит многообещающе завтра попробую – djv

Смежные вопросы