ОБСУЖДЕНИЕ

Конвертирование вложенной картинки в приаттаченный файл

22 ответов 14,9 тыс.
AI-выжимка обсуждения скоро
Подскажите, пожалуйста, в каком направлении нужно идти, чтобы добиться следующей задачи: конвертирование картинки в файл, приаттаченный к письму.
Расшифровываю, есть 2 варианта, какой из них проще/лучше реализовать:
1. Отправляется письмо с вложенным объектом - картинка. При получении такого письма необходимо его модифицировать так, чтобы вложенный объект был извлечен и вставлен в текст письма как вложение графического файла.
2. В почте создать бланк письма, в котором будет кнопка, по нажатию на которую в текст письма вложится сгенерированный файл картинки, скопировав какой-нибудь скриншот из буфера обмена.

В любом случае необходимо переделать графич.объект в графич.файл.
На мой взгляд, проще реализовать первый вариант. Может у кого есть примеры готовых скриптов или кто подскажет хотя бы методы, которые необходимо применять для реализации данной задачи?
 
Если я правильно понял задачу

А сохранять объек RT-поля на диск и затем приатачивать его в документ
 
Если не трудно, подскажи, каким методом сохранять объект на диск?
 
Для: Wanderer
Вам повсей видимсоти нужно работать с классом NotesEmbeddedObject class
 
Вот небольшой примерчик кнопки на форме
которая переводит атачмент в одном поле в embeded object в другое поле

Код:
Sub Click(Source As Button)

Dim workspace As New NotesUIWorkspace	
Dim doc As NotesUIDocument 
Dim rtitemA As NotesRichTextItem 
Dim info As NotesRichTextItem 
Set doc = workspace.CurrentDocument 
If Not doc.Document.HasEmbedded Then Exit Sub 
Set rtitemA = doc.Document.GetFirstItem("info") 


REM Сохраняем аттачи на диск 
Forall att In rtitemA.EmbeddedObjects 
If att.Type = EMBED_ATTACHMENT Then 
filepath$ = "C:\temp\" & att.Source 
Call att.ExtractFile(filepath$) 
Call doc.GotoField("embed") 
'Call doc.Import("JPEG Image",filepath$) 
Call doc.Import("Microsoft Word",filepath$)
'Call doc.CreateObject("Quarterly Reports", "",filepath$)
Kill filepath$ 
End If 
End Forall 
Call doc.FieldClear("Info")
Call rtitemA.Update

End Sub
 
хмм.. что-то в этом есть... чуть попозже раберусь с этим кодом. спасибо за наводку.
Если у кого что есть еще более конкретное под мою задачу, буду только рад.
 
Для: Wanderer
К сожалению нима под картинку, а только похожее на allex .. но ждём Ваших результатов link removed :)
 
Этот код впринципе является простым перекладыванием из одного поля в другое.
Что касаемо картинок, то нужно сделать так.
Просто у меня в базе не только картинки (есть и doc и xls)
Поэтому хочу универсальности
Код:
REM Сохраняем аттачи на диск 
Forall att In rtitemA.EmbeddedObjects 
If att.Type = EMBED_ATTACHMENT Then 
filepath$ = "C:\temp\" & att.Source 
Call att.ExtractFile(filepath$) 
Call doc.GotoField("embed") 
Call doc.Import("JPEG Image",filepath$) 
Kill filepath$ 
End If 
End Forall 
Call doc.FieldClear("Info")
Call rtitemA.Update

Для: Wanderer
К сожалению нима под картинку, а только похожее на allex .. но ждём Ваших результатов link removed :)

Тогда кто будет это туда постить (модератор или автор)
 
Для: allex
[OffTop]
Постить может любой, модератор лиш проверяет на правильность и публикует тему, авторство остаеться у того кто СОЗДАЛ тему
[/OffTop]
 
Вставил скрипт в код кнопки в записке письма с аттачментами.
Ошибка: "Object variable not set"
Судя по дебаггеру ошибка вылетает на строке
Set rtitemA = doc.Document.GetFirstItem("info")

В связи с этим у меня следующий вопрос, а разве параметр функции GetFirstItem - info в кавычках распознается именно как объект info As NotesRichTextItem? Мне кажется, что параметром станет просто текстовое значение - info. Или я что-то не понимаю?
 
Для: Wanderer
ПО текстовому значению "info" он ищет поле с именем info. Так что парамерт распознаеться как строка а возвращает оно rtItem
 
Для: Wanderer
ПО текстовому значению "info" он ищет поле с именем info. Так что парамерт распознаеться как строка а возвращает оно rtItem

Поле Info - поле с атачментом
Поле Embed - поле куда выкладывается объект
 
С полем Embed догадался сам, заменил его на Body. А вот с Info стормозил. :)

Зачем тогда строка, объявляющая переменную info?
Dim info As NotesRichTextItem
 
А за подсказку спасибо, теперь всё заработало.
Переделаю под себя код, навесю агент на почтовый ящик, чтобы входящие письма обрабатывал автоматом, а код выложу в здешнюю Codebase
 
А не так всё просто, как казалось на первый взгляд. Метод EmbedObject не видит в текст документа картинки (вставленные через импорт, а не вложением файла).
Нашел инфу, как обнаружить наличие картинки в документе, но решение данной задачи лежит в применении DXL, что для меня весьма проблематично.
Других вариантов нет что ли?
 
...
1. Отправляется письмо с вложенным объектом - картинка. При получении такого письма необходимо его модифицировать так, чтобы вложенный объект был извлечен и вставлен в текст письма как вложение графического файла.
2. В почте создать бланк письма, в котором будет кнопка, по нажатию на которую в текст письма вложится сгенерированный файл картинки, скопировав какой-нибудь скриншот из буфера обмена.
...

Что-то чувствую себя озадаченным такой постановкой вопроса... Разве все сказанное не является частью стандартного функционала лотусовой почты? Разве раутер не осуществляет преобразование МИМЕ/РТФ? Разве нет в почтовом клиенте Лотуса флага "показывать МИМЕ вложения инлайн"? Чем Вас это не устраивает? Поясните, пожалуйста, если я совсем не так понял вопрос!
 
Постановка задачи такова: что необходимо, чтобы на ящик приходили письма только с аттачами. Есть сторонняя система, которая читает этот ящик и формирует на основе нового входящего письма запрос и вкладывает туда вложенные файлы. Вставленные картинки же сторонняя система не понимает.
 
Что-то чувствую себя озадаченным такой постановкой вопроса... Разве все сказанное не является частью стандартного функционала лотусовой почты? Разве раутер не осуществляет преобразование МИМЕ/РТФ? Разве нет в почтовом клиенте Лотуса флага "показывать МИМЕ вложения инлайн"? Чем Вас это не устраивает? Поясните, пожалуйста, если я совсем не так понял вопрос!

У меня есть схожая задача.
Подстажите плиз как в почтовом клиент найти галочку "показывать МИМЕ вложения инлайн"
В параметрах что-то не нашел, лотус 6.5
 
Для Gromila

В R.7 это здесь:

With this turned on, images you receive within the text of a MIME message appear as attachments.
1. From the menu, choose File - Preferences - User Preferences.
Macintosh OS X users: Notes - Preferences - User Preferences.
2. Under Additional Options, select "Show in-line MIME images as attachments."
3. Click OK.
See Also
Basic preferences
Preserving text styles in messages sent over or received from the Internet
 

Статистика тем

Создано
Wanderstep,
Последний ответ от
Wanderstep,
Ответы
22
Просмотры
14 934