Скопировать Фото Из Rishtext Поля

  • Автор темы Автор темы Rosna
  • Дата начала Дата начала
R

Rosna

Добрый день!

Возник такой вопрос - как можно из RishText поля взять приаттаченый файл (фото) и вставить его в другой документ уже в виде открытой картинки.

Пыталась просто скопировать RishText, но в итоге фото не появлятся, хоть и сохраняется в документе:

Код:
Set PhotoRttItem = OldDoc.GetFirstItem("photo")
If Not (PhotoRttItem is Nothing) then
Call doc.CopyItem(PhotoRttItem, "photo")
End If
...

Подскажите, есть ли другой способ?
В идеале нужно ресайзить фото при переносе, но с этим пока не разбиралась даже. %)
 
Для переноса использовать dxl, его же для масштабирования, если нужно именно изменить размер картинки, ищите подходящие java-библиотеки.

Похожая тема:
link removed
 
коротко
путь такой - дергаем файл через (DXL), лучше SAX, файл будет в base64, получаем DXL из целевого дока, вставляем нужный тег (<picture> с соответ атрибутами) в нужное место, загружаем DXL (соотвю целевому доку) обратно
будет ли опознавать картинки отличные от gif - не знаю

если нет - используя java: декодим base64 конвертим в gif, кодим в base64... повторяем часть верхнего алгоритма

Добавлено: преобразование форматов
 
Хм... ресайз делал без DXL.
1. детач файла
2. пропорциональный ресайз с использованием java
3. атач файла в документ

С ресайзом все достаточно просто.
А вот прикрепить в виде картинки... хм... даже не знаю... может
 
Хм... ресайз делал беp DXL.
1. детач файла
2. пропорциональный ресайз с использованием java
3. атач файла в документ

С ресайзом все достаточно просто.
А вот прикрепить в виде картинки... хм... даже не знаю... может
не совсем просто - если на сервере и нет прав на создание файлов в ФС
 
не совсем просто - если на сервере и нет прав на создание файлов в ФС
И это тоже решается...
Права на директорию data есть всегда. Там и создаю временную директорию и делаю то что мне нужно.
Ну и конечно же агент подписан сервером.

Да... кстати... java использовалась только для ресайза и вызывалась из lotusscript
 
не являясь админом - откуда взять ИД сервера? ;)
 
Права на директорию data есть всегда. Там и создаю временную директорию и делаю то что мне нужно.
Ну и конечно же агент подписан сервером.
чьи это слова? ;)
 
Думаю, можно сохранять фото на локальном компе, так как создание нового документа с фото будет инициироваться человеком, а не агентом.
 
Скидывать это на сторону клиента не очень хорошо... дебажить java-код не просто.
Так же не хорошо использовать DXL на стороне клиента. Был не хороший опыт подобной реализации. Версии XML у клиентов могут отличаться.

У меня сделано так:
1. Пользователь шлет мыло с файлом
2. агент разбирает письма
3. детачит файл на сервер
4. ресайзит
5. атачит измененный файл в документ
6. удаляет мусор

Касательно прав - не пойму в чем проблема.
У сервера всегда есть права на запись в свою директорию.
База всегда подписана сервером (у нас по крайней мере). Не подписана - пинаем админов.

Единственное - уровень доступа агента 3

И все счастливы.
 
Касательно прав - не пойму в чем проблема.
У сервера всегда есть права на запись в свою директорию.
База всегда подписана сервером (у нас по крайней мере). Не подписана - пинаем админов.
Это если админ - карманный. И сервер - единственный
И все счастливы.
Угу..
 
Это если админ - карманный. И сервер - единственный

Угу..
Если у вас полные права на сервер - так вообще вопросов нет.
Если прав нет - то можно написать базейку, в которой серверный агент будет подписывать базы.
Один раз пнуть админа, чтоб он подписал эту базу, и дальше только клепай задания на подпись. И базы подписаны и админы спокойны.

У нас 4 рсервера. 4 базы для автоподписи. 4 раза пнули админа чтоб он их подписал.

А то то и делаете, что ищите какие-то причины, да "руки выкручиваете"
 
Дело в том, что файл может разбиваться на несколько частей:

Код:
ForAll a In doc1.Items
If Ucase(a.name) = "FOTO" Then
Set nitem = a 
Call doc2.CopyItem( nitem, "foto" )								
End If
End ForAll
 
Ну в общем у нее все получилось :huh:
Тема закрыта
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!