Масштабирование изображений в документе

Автор ОлегV, 28 мая 2024, 07:23

0 Пользователи и 1 гость просматривают эту тему.

ОлегV

Здравствуйте. Возникла необходимость программно изменить размер изображения в документе Writer. В документе есть текстовая таблица, в одной из ячеек находится изображение в формате jpg и под ним в этой же ячейке текстовая строка с названием изображения (например: Фото 1).Тип обтекания - "нет", привязка к абзацу. Я научился вставлять новое изображение, точнее заменять старое на новое, но изображения могут быть разного размера и разного разрешения. И когда оно вставляется оно подгоняется автоматически под размер изображения , которое заменяется. Т.е. можно вставить любое фото - но видимый размер остается прежним, и приходиться каждый раз вручную менять размеры. Я пробовал менять разные свойства, но что пока не получается. Подскажите пожалуйста , как можно отмасштабировать изображение  в этом случае, чтоб оно   сохранило свои пропорции, но размер ячейки текстовой таблицы остался прежний. И второе, как изменить разрешение изображения, чтоб уменьшить его размер?
oImage = ThisComponent.createInstance("com.sun.star.text.GraphicObject")
oGraphicProvider = createUnoService("com.sun.star.graphic.GraphicProvider")
props(0).Name = "URL"
props(0).Value = URL вставляемого файла
oImage.graphic=oGraphicProvider.queryGraphic(props)
ThisComponent.getGraphicObjects().getByName("ИмяИзображенияВдокументе").graphic =  oImage.graphic
   

Таким кодом заменяю одно изображение на другое.

Massaraksh7

Так, может, сначала удалить старую, потом вставить новую?

ОлегV

Можно и так, но это не решает проблему, все равно размеры надо подгонять. 

economist

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

mikekaganski

У Вас есть высота исходного объекта (которое Вы запоминаете перед заменой из свойства Height). После замены у Вас есть размеры изображения (у растровых изображений - в пикселях: свойство Graphic, и его свойство Size). Отсюда пересчитайте, чему должна быть равна ширина вставленного изображения при заданной высоте, и установите свойство Width.
С уважением,
Михаил Каганский

ОлегV

Я меняю свойства Height и Width свойства Size, но размер изображения в документе почему-то остается прежним, я проверял значения этих свойств - они изменились, почему так, не понимаю. ???  Еще пробовал менять свойства ActualSize,  Size100thMM, SizePixel, та же история. На форуме тоже не нашел подобных обсуждений, поэтому и создал эту тему.

ОлегV

Цитата: economist от 29 мая 2024, 08:12Помимо Питоньяка есть еще книжки...
Спасибо за ссылку, думаю должна помочь. Если найду решение , отпишусь. :beer:

mikekaganski

Цитата: ОлегV от 29 мая 2024, 12:35Я меняю свойства Height и Width свойства Size

Не надо менять свойства Height и Width свойства Size. Меняйте свойства Height и Width самого объекта.
С уважением,
Михаил Каганский