Вывод картинки в макет с реальным размером

1. user824140 21.03.19 15:52 Сейчас в теме
Не выводится на печать картинка с реальными размерами. Если ширину и высоту не ставить, то будут видны лишь границы картинки.
Вопрос, как вывести в печ.форму картинку (что лежит на сервере) с реальными размерами? Должен же быть какой-то способ.

&НаСервере

ИмяМакет = "Документ.РТУ.МакетКартинка";
	Макет = УправлениеПечатью.МакетПечатнойФормы(ИмяМакет);
   	ОбластьМакета = Макет.ПолучитьОбласть("ОбластьСКартинкой");
	АдресВременногоХранилища = ПолучитьФайлССервера(Путь);
		
	мДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
	мВременныйПутьКФайлу = ПолучитьИмяВременногоФайла("jpg");
	мДвоичныеДанные.Записать(мВременныйПутьКФайлу);
		
	Изображение = Новый Картинка(мВременныйПутьКФайлу);
	ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
	ОбластьМакета.Рисунки.D1.Картинка = Изображение;
	ОбластьМакета.Рисунки.D1.ширина = 100;
	ОбластьМакета.Рисунки.D1.Высота = 100;
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
13. user824140 08.04.19 09:54 Сейчас в теме
(13) Решением можно считать любой пост, так как автоматически не удалось вставить картинку с реальными размерами.Сделал пустую картинку в макете и уже в нее вставлял картинку.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Xershi 1484 21.03.19 16:46 Сейчас в теме +0.3 $m
(1) реальный размер задается параметром у картинки, только если вы пихаете рандом, то какой результат ожидаете?
6. user824140 21.03.19 16:49 Сейчас в теме
(4) Может, я вас неясно понял, но если вот этот кусок кода не прописывать,
ОбластьМакета.Рисунки.D1.ширина = 100;
ОбластьМакета.Рисунки.D1.Высота = 100;

то картинка будет миллиметровая, будут видны лишь границы картинки.
7. Xershi 1484 21.03.19 16:51 Сейчас в теме
(6) потому что вы параметр не задали, как картинку выводить, скорее всего по умолчанию стоит вмещать!
говорю же добавиь в макет сначала, потом поймешь чего не хватало, если не хочешь в продакш на макет вешать!
10. VladimirB 16 23.03.19 09:10 Сейчас в теме
(1)
Процедура ОпределитьРазмерКартинки(Кнопка)
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл с картинкой";
    Диалог.ПолноеИмяФайла = "";
    Диалог.ПредварительныйПросмотр = Истина;
    Диалог.Фильтр = 
    "Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|" ; // картинки    
    
    Если Диалог.Выбрать() Тогда
        Каталог=Диалог.Каталог;
        Имя=Сред(Диалог.ПолноеИмяФайла,стрДлина(Каталог)+1);

          
        objShellApp=Новый COMОбъект("Shell.Application");
        objFolder=objShellApp.NameSpace(СокрЛП(Каталог));
        objItem=objFolder.ParseName(СокрЛП(Имя)); 
        размеры=objFolder.GetDetailsOf(objItem,31);
                        //Для иии=0 по 200 Цикл
                        //    Сообщить(""+иии+" - "+objFolder.GetDetailsOf(objItem,иии));
                        //КонецЦикла;
        Размеры=СтрЗаменить(размеры,"?","");
        Сообщить("Размеры картинки - "+Размеры);
    КонецЕсли;
КонецПроцедуры
Показать
2. пользователь 21.03.19 16:01
Сообщение было скрыто модератором.
...
3. user824140 21.03.19 16:44 Сейчас в теме
То есть, вопрос в чем. Можно картинку с реальным размером вставить в макет или нужно ставить:
ОбластьМакета.Рисунки.D1.ширина = 100;
    ОбластьМакета.Рисунки.D1.Высота = 100;
5. Xershi 1484 21.03.19 16:46 Сейчас в теме
И почему в макет не поместить картинку пустую. А уже чем заполнить потом решить?
8. Dnki 4 21.03.19 20:40 Сейчас в теме
Попробую пояснить проще:
- открыть макет
- нажать кнопку "Вставить рисунок"
- Конф. выдаст меню с запросом на файл рисунка. Не выбирать, нажать Ок.
- сделать рисунок нужным размером
- выставить в свойствах РазмерКартинки = "Пропорционально", Узор = "Нет заливки"
- самое главное! Имя = "КрасивыйРисунок" а не лентяйские "D1".

Тогда в коде убираем команды создания объекта. Кстати, не нравится мне и
"мДвоичныеДанные.Записать(мВременныйПутьКФайлу);" А без временного файла не обойтись?

ОбластьМакета.Рисунки.КрасивыйРисунок.Картинка = Новый Картинка(ПолучитьИзВременногоХранилища(АдресВременногоХранилища));


Может и сработает?
9. waitklassik 22.03.19 09:06 Сейчас в теме
а если в макет вставить картинку задать нужные (реальные) размеры и сохранить макет?
11. hudoznik 4 23.03.19 10:54 Сейчас в теме
А если посмотреть свойства картинки и загнать их в переменную, а потом эти переменные подставить в макет и загрузить картинку
12. spaijder 25.03.19 11:22 Сейчас в теме
Наглядно
Прикрепленные файлы:
13. user824140 08.04.19 09:54 Сейчас в теме
(13) Решением можно считать любой пост, так как автоматически не удалось вставить картинку с реальными размерами.Сделал пустую картинку в макете и уже в нее вставлял картинку.
14. nusv 47 23.07.19 14:48 Сейчас в теме
ОбластьКартинка.Рисунки.D1.РазмерКартинки = РазмерКартинки.РеальныйРазмер
15. dminrii.butorin 02.08.23 17:43 Сейчас в теме
Я так сделал.

Коэф = 0.26458;//https://bbf.ru/converter/417/93/

Картинка = Новый Картинка(ДанныеФайла.ДвоичныеДанные);

Рисунок = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.РазмерКартинки = РазмерКартинки.Пропорционально;
Рисунок.Ширина = Картинка.Ширина() * Коэф;
Рисунок.Высота = Картинка.Высота() * Коэф;
Рисунок.ГраницаСверху = Ложь;
Рисунок.ГраницаСлева = Ложь;
Рисунок.ГраницаСнизу = Ложь;
Рисунок.ГраницаСправа = Ложь;
Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии, 1);
Рисунок.Картинка = Картинка;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот