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

Тема в разделе "Lotus - Программирование", создана пользователем Wanderer, 18 янв 2007.

  1. Wanderer

    Wanderer Lotus team
    Lotus team

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

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

    allex Гость

    Если я правильно понял задачу

    А сохранять объек RT-поля на диск и затем приатачивать его в документ
     
  3. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    Если не трудно, подскажи, каким методом сохранять объект на диск?
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Wanderer
    Вам повсей видимсоти нужно работать с классом NotesEmbeddedObject class
     
  5. allex

    allex Гость

    Вот небольшой примерчик кнопки на форме
    которая переводит атачмент в одном поле в embeded object в другое поле

    Код (Text):
     
    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
     
  6. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    хмм.. что-то в этом есть... чуть попозже раберусь с этим кодом. спасибо за наводку.
    Если у кого что есть еще более конкретное под мою задачу, буду только рад.
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Wanderer
    К сожалению нима под картинку, а только похожее на allex .. но ждём Ваших результатов здесь :)
     
  8. allex

    allex Гость

    Этот код впринципе является простым перекладыванием из одного поля в другое.
    Что касаемо картинок, то нужно сделать так.
    Просто у меня в базе не только картинки (есть и doc и xls)
    Поэтому хочу универсальности
    Код (Text):
    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
    Тогда кто будет это туда постить (модератор или автор)
     
  9. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: allex
    [OffTop]
    Постить может любой, модератор лиш проверяет на правильность и публикует тему, авторство остаеться у того кто СОЗДАЛ тему
    [/OffTop]
     
  10. allex

    allex Гость

    А почему нельзя приатачить .dot
    Пришлось ссылку на свой пост делать
     
  11. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    Вставил скрипт в код кнопки в записке письма с аттачментами.
    Ошибка: "Object variable not set"
    Судя по дебаггеру ошибка вылетает на строке
    Set rtitemA = doc.Document.GetFirstItem("info")

    В связи с этим у меня следующий вопрос, а разве параметр функции GetFirstItem - info в кавычках распознается именно как объект info As NotesRichTextItem? Мне кажется, что параметром станет просто текстовое значение - info. Или я что-то не понимаю?
     
  12. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Wanderer
    ПО текстовому значению "info" он ищет поле с именем info. Так что парамерт распознаеться как строка а возвращает оно rtItem
     
  13. allex

    allex Гость

    Поле Info - поле с атачментом
    Поле Embed - поле куда выкладывается объект
     
  14. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    С полем Embed догадался сам, заменил его на Body. А вот с Info стормозил. :)

    Зачем тогда строка, объявляющая переменную info?
    Dim info As NotesRichTextItem
     
  15. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    А за подсказку спасибо, теперь всё заработало.
    Переделаю под себя код, навесю агент на почтовый ящик, чтобы входящие письма обрабатывал автоматом, а код выложу в здешнюю Codebase
     
  16. Wanderer

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    А не так всё просто, как казалось на первый взгляд. Метод EmbedObject не видит в текст документа картинки (вставленные через импорт, а не вложением файла).
    Нашел инфу, как обнаружить наличие картинки в документе, но решение данной задачи лежит в применении DXL, что для меня весьма проблематично.
    Других вариантов нет что ли?
     
  17. Fossil Code

    Fossil Code Гость

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

    Wanderer Lotus team
    Lotus team

    Регистрация:
    23 мар 2006
    Сообщения:
    368
    Симпатии:
    14
    Постановка задачи такова: что необходимо, чтобы на ящик приходили письма только с аттачами. Есть сторонняя система, которая читает этот ящик и формирует на основе нового входящего письма запрос и вкладывает туда вложенные файлы. Вставленные картинки же сторонняя система не понимает.
     
  19. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    У меня есть схожая задача.
    Подстажите плиз как в почтовом клиент найти галочку "показывать МИМЕ вложения инлайн"
    В параметрах что-то не нашел, лотус 6.5
     
  20. Fossil Code

    Fossil Code Гость

    Для 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
     
Загрузка...
Похожие Темы - Конвертирование вложенной картинки
  1. DNT
    Ответов:
    7
    Просмотров:
    5.128
  2. imendan
    Ответов:
    20
    Просмотров:
    3.850

Поделиться этой страницей