Проблема при конвертации текста из Richtext поля в Html

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

Статус темы:
Закрыта.
  1. SparkLone

    SparkLone Гость

    Доброго времени суток.
    Волею судеб пришлось работать с Lotus Notes (6.5). Столкнулся со следующей проблемой - конвертация текста из поля (RichText) в HTML формат, второй день ежа рожаю :)
    Если поконкретней - нашел солюшен, на кнопку вешается следующий код:
    Код (Text):
    Sub Click(Source As Button)
    Dim CurDocument As NotesUIDocument
    Call CurDocument.Save  
    Dim html As Variant
    Dim session As New notessession
    session.convertmime=False
    Set doc=CurDocument.document
    Set var = doc.getfirstitem("Mess")
    Set mime = var.getmimeentity()
    html = mime.contentastext
    Messagebox html
    End Sub
    Соответственно у меня есть RichText поле "Mess" у которого выбрано галочкой "Store contents as HTML and MIME"

    Интересно, что в первый раз все конвертируется и отображается как часы.. Но если после этого изменить что либо в поле "Mess" и щелкнуть еще раз - начинается такая свистопляска...
    Пример: сначала ввожу текст "sample" - получаю на выходе
    ---------------------------
    <font size=2 face="sans-serif">sample</font>
    ---------------------------

    затем редактирую поле, и ввожу
    "first
    sample"

    на выходе уже -
    ---------------------------
    <font size=2 face="sans-serif">first</font>

    <
    ---------------------------

    Ну и т.д.
    Единственное что я уловил - проблемы начинаются после Save'а, но без него не достать значение поля "Mess", оно вообще не появляется в глобальных переменных. Сохранять всего в первый раз тоже не получилось, ибо тогда соответственно берется старое значение.
    Может кто уже сталкивался с таким? Или может кто знает другой способ конвертации.
    Буду благодарен любой помощи.
     
  2. Fossil Code

    Fossil Code Гость

    Кхм-кхм... Простите за праздное любопытство, а с какой целью нужно программно конвертировать РТФ в ХТМЛ? Возможно ли, чтобы существовала вероятность того, что исходная (пока не обозначенная) задача могла решаться иными методами? Ведь конвертация ради конвертации -- звучит не вполне вдохновляюще...
     
  3. SparkLone

    SparkLone Гость

    Вы правы, конвертация ради конвертации - это не самое лучшее времяпрепровождение )
    Суть в том, что отсылку делает не сам Lotus, а другая программа (связь через COM), соответственно надо передать как то содержимое письма.
    Вчера ближе к ночи я все же вроде подобрался к решению сией зловредной задачи. По моему чтобы все работало как часы, нужно не только сохранять документ, но и переоткрывать его, тогда глюков вроде нет. Хотя это надо еще потестировать, ибо переоткрывание документы вызывает side-эффекты, да и смотрится не очень.. Эхх.. Все не слава богу :rolleyes:
     
  4. Fossil Code

    Fossil Code Гость

    А экспорт не пробовали? Там всякие хитрости есть, и в МС Ворд, и в XML... Авось подойдет?
     
  5. SparkLone

    SparkLone Гость

    Ммм, не пробовал, нельзя ли поподробнее?

    В данный момент в принципе я получил то, что хотел - если сохраняешь документ и потом переоткрываешь - все ок, но после переоткрытия документа - изменяются размеры шрифтов в RichText
    Нашел вот тему которая поможет избавиться от необходимости переоткрытия, пытаюсь применить:
    http://searchdomino.techtarget.com/tip/0,2...i993463,00.html
     
  6. Fossil Code

    Fossil Code Гость

    Можно, но должен предупредить, что тема Using XML with LotusScript (см.хелп дизайнера) знакома мне только тем, что такая возможность описана в хелпе!

    А про Ворд... Можно представить себе такую процедуру: экспорт документа в Ворд РТФ (или даже в картинку) Потом запуск Ворда командной строкой с целью пересохранения РТФ в ХТМЛ. Это можно автоматизировать... Не спорю, что громоздко... Но возможно.
     
  7. SparkLone

    SparkLone Гость

    Ну, тема с вордом была бы конечно идеальной.. Но к сожалению я не могу расчитывать на то, что в системе стоит Word..

    А солюшн у меня получился следующий.. К сожалению от необходимости переоткрытия документа не избавился, но это лучшее что я смог выжать.
    Код (Text):
    Sub Click(Source As Button)
    mess$ = GetHTMLFromRTF(CurDocument.Document, "Message")
    succesfullSend = sender.SendDistribution(mess$)
    CurDocument.Close
    If Not succesfullSend Then
    Dim sess As New NotesSession
    Dim db As NotesDatabase
    Set db = sess.CurrentDatabase
    Set pdoc = db.GetDocumentByUNID(distId)
    Dim ws As New NotesUIWorkspace
    Call ws.EditDocument(False,pdoc)
    End If
    End Sub
     
  8. Fossil Code

    Fossil Code Гость

    Интересная мысль, и, как всегда, поздновато. Есть еще один вариант конвертации: путем высылки документа _по лотусовой почте внутри системы_ . Пусть себе раутер корвертирует лотусовые в стандартные форматы! А из базы назначения уже можно документы преобразованные высылать дальше.
     
  9. SparkLone

    SparkLone Гость

    Мысль действительно интересная, и мне пока малопонятная. Опыта в Lotus'е почти нет.. =/
    Спасибо за предложения, но видимо пока все останется так, как я уже описывал, правда при дальнейшей имплементации возникла новая проблема - удаление документа (в данный момент редактируемого) из базы, сейчас буду постить новый вопрос..
     
Загрузка...
Статус темы:
Закрыта.

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