Проблемы с конвертацией Mime в Richtext

Тема в разделе "Lotus - Программирование", создана пользователем PavelT100, 22 июл 2010.

  1. PavelT100

    PavelT100 Well-Known Member

    Регистрация:
    9 июл 2007
    Сообщения:
    105
    Симпатии:
    0
    И вот такая теперь у меня проблема. Пришло письмо в лотус из OutLook. Оно в MIME формате. Вообще все пользователи с такими работают. Открывают, дописывают туда, ставят комментарии и т.д.
    А я решил его открыть программно. Вот пришло только что письмо и я его раз читаю и ничего собственно не делаю:
    Код (Text):
        Dim session As New NotesSession    
    session.ConvertMIME = true

    Dim rtitem As NotesRichTextItem  
    Set rtitem = doc.GetFirstItem("Body")      

    doc.Save(True, False )
    А эффект плачевен, документ сохранился, но формат текста поля Body письма - шрифт, размер, цвет потерялся. Как его правильно сковертировать чтобы эти параметры сохранились ?
    Если GetFirstItem не делать, а просто сохранить документ, то потерь формата не произойдёт.
     
  2. Darker

    Darker Гость

    попробуй в начале
    session.ConvertMIME = False
    потом в конце
    session.ConvertMIME = True
     
  3. PavelT100

    PavelT100 Well-Known Member

    Регистрация:
    9 июл 2007
    Сообщения:
    105
    Симпатии:
    0
    Если открывать документ с session.ConvertMIME = False, то поле Body предствляет собой массив из 4 элементов - частей MIME формата. Само собой GetFirstItem уже не работает, так как это не RichTetxt.
    Что есть для вас "начало" и "конец" ?
     
  4. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    вот как у мну работает, куски кода:

    Код (Text):
    s.ConvertMime = False
    .....
    ...
    ...

    Set stream = s.CreateStream
    Set mime = doc.CreateMIMEEntity("Body")
    Call mime.SetContentFromText (stream, "text/html;charset=UTF-8", ENC_NONE)

    s.ConvertMime = True
     
  5. PavelT100

    PavelT100 Well-Known Member

    Регистрация:
    9 июл 2007
    Сообщения:
    105
    Симпатии:
    0
    Это замчательные куски, если надо сделать письмо с MIME частями и отправить его.
    А у меня чуть другая задача. Мне уже пришло письмо. Мне бы надо его сковертировать в обычные ричтекст, но это плохо получается. Теряеются элементы форматирования - размер шрифта и цвет. Вот как мне этого достичь ? Идея у меня затем простая, мне к этому ричтексту надо будет дописывать комментарии читателей писем.
     
  6. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    Я бы сказал - это, в целом, у Лотуса плохо получается :)
    Т.е., у пользователей все нормально - не теряется форматирование? А к ним эти письма в MIME или в Rich Text приходят? Это же еще от настроек в DD зависеть может...
     
  7. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Код (LotusScript):
    Function ConvertRTDoc(Doc As NotesDocument) As String ' Конверт Mime в РТ
    '   ses.ConvertMIME = False
    Dim mime As NotesMIMEEntity, v1 As Variant
    Set mime = doc.GetMIMEEntity
    v1 = ""
    If Not(mime Is Nothing) Then
    Call mime.DecodeContent
    v1 = mime.ContentAsText
    End If
    If Len(v1)>64000 Then v1 = Left(v1, 64000)
    Let Doc.ReplaceItemValue("Body2", v1).Issummary = False
    ConvertRTDoc = v1
    '   ses.ConvertMIME = True
    End Function
     
  8. PavelT100

    PavelT100 Well-Known Member

    Регистрация:
    9 июл 2007
    Сообщения:
    105
    Симпатии:
    0
    Что такое DD ?
    Даже у меня как у пользователя Лотуса, когда я в Лотусе работаю с письмами как обычный пользователь открываю их, редактирую, закрываю всё работает корректно. Письма приходят MIME. А вот потом, после открытия, сохранения и закрытия они становятся у пользователей RcihText и это гораздо более корректный ричтекст, чем тот которй получается у меня если делать это программно
    Код (Text):
     Dim rtitem As NotesRichTextItem     
    Set rtitem = doc.GetFirstItem("Body")          
    doc.Save(True, False )
    Добавлено:
    Спасибо, я попробую. Но чувствую это будет очень большой геморой, если будет несколько MIME частей, если будут приатаченные картинки, приатаченные файлы - замучаешься их выколупывать и пристыковывать заново.
    А уж если что-то потеряется, меня в асфальт закатают под общее улюлюкание.
     
  9. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    DD=Domino Directory.
    Я просто хотел сказать, что конвертация MIME->Rich Text работает достаточно хреново и при конвертации писем самим сервером Domino (если письмо приходит в MIME, а в документе пользователя в DD указано "Prefers Rich Text").
    Потеря атрибутов текста, кривые таблицы - все это наблюдаю довольно часто. Поэтому не жду от LS корректной конвертации... :please:
     
  10. PavelT100

    PavelT100 Well-Known Member

    Регистрация:
    9 июл 2007
    Сообщения:
    105
    Симпатии:
    0
    Да, но при редактировании пользователя руками и сохранении документа в ричтексте получается результат лучше чем у меня программно - вот это наводит на мысль, что можно же ещё что-то сделать....
     
  11. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    Боюсь, не все можно сделать на LS. Посмотрите еще C API, возможно, там выбор побогаче...
     
  12. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    А не смотрели, как выглядит документ в dxl? Может получица прямо в майм запихнуть?
    В RT точно можно воткнуть <pardef> с произвольным форматированием, не снося остального форматирования...
     
  13. PavelT100

    PavelT100 Well-Known Member

    Регистрация:
    9 июл 2007
    Сообщения:
    105
    Симпатии:
    0
    А что такое <pardef> ?
     
  14. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    так в DXL рт-параграфы задаются, попробуйте док-т с рт экспортнуть и всё увидите.
    ЗЫ. т.е. их стили.
     
  15. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Выгрузите документ, содержащий ричтекст, в dxl и откройте текстовым редактором. После долгого вглядывания обычно становица понятно, что нужно добавить чтобы получить желаемое.
     
Загрузка...
Похожие Темы - Проблемы конвертацией Mime
  1. aliaksandr89
    Ответов:
    3
    Просмотров:
    123
  2. Amfion
    Ответов:
    5
    Просмотров:
    120
  3. wowa
    Ответов:
    7
    Просмотров:
    378
  4. John_Tavarez
    Ответов:
    0
    Просмотров:
    335
  5. Валентин Амбер
    Ответов:
    11
    Просмотров:
    344

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