2013-06-14 2 views
0

Кто-нибудь знает, есть ли способ вне использования элемента управления текстовым полем третьей стороны, чтобы ввести HTML в текстовое поле VB6.Богатый текст в текстовом поле VB6

Я ничего не нашел в Интернете.

+0

Можете ли вы избежать использования текстового поля RTF и преобразования вывода в HTML? Это подход, который мы использовали недавно, который хорошо работает для наших требований. Я могу предоставить более подробную информацию, если она используется –

+0

В VB6 есть RTF-блок? – logixologist

+0

Извиняюсь, я как раз собирался обновить свой ответ после того, как заметил, что вы используете VB6. –

ответ

3

Надеюсь, вы сможете это использовать. Мы делаем это в .Net, чтобы разрешить простой элемент управления в формах для отправки форматированных писем. Таким образом, у нас есть текстовое поле RTF с пользовательским меню для создания текста, затем мы извлекаем RTF, конвертируем его в HTML и добавляем его как HTML-контент в качестве тела письма. RTF для преобразования HTML использует код из этой статьи: http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

Вот код обертки мы используем, чтобы связать это вместе - это просто принимает входной сигнал в формате RTF и непосредственно возвращает вывод HTML:

Imports Itenso.Rtf 
Imports Itenso.Rtf.Support 
Imports Itenso.Rtf.Parser 
Imports Itenso.Rtf.Interpreter 
Imports Itenso.Rtf.Converter.Image 
Imports Itenso.Rtf.Converter.Html 
Imports Itenso.Sys.Application 
Namespace Email 
    Public Class RtfToHtml 

    Public Function Convert(inText As String) As String 
     Dim struct = ParseRtf(inText) 
     Dim doc = InterpretRtf(struct) 
     Return ConvertHtml(doc) 
    End Function 


    Private Function ParseRtf(inText As String) As IRtfGroup 
     Dim structureBuilder As New RtfParserListenerStructureBuilder 
     Dim parser = New RtfParser(structureBuilder) With {.IgnoreContentAfterRootGroup = True} 
     Dim source = New RtfSource(inText) 
     parser.Parse(source) 
     Return structureBuilder.StructureRoot 
    End Function 

    Private Function InterpretRtf(rtfStructure As IRtfGroup) As IRtfDocument 
     Dim settings = New RtfInterpreterSettings With {.IgnoreDuplicatedFonts = True, .IgnoreUnknownFonts = True} 
     Return RtfInterpreterTool.BuildDoc(rtfStructure, settings) 
    End Function 

    Private Function ConvertHtml(document As IRtfDocument) As String 
     Dim settings As New RtfHtmlConvertSettings With {.Title = "Notification Of Shipment", 
                 .IsShowHiddenText = False, 
                 .UseNonBreakingSpaces = True} 
     Dim converter = New RtfHtmlConverter(document, settings) 
     'converter.StyleConverter = New RtfEmptyHtmlStyleConverter 
     Return converter.Convert 
    End Function 

    End Class 
End Namespace 

В зависимости от ваше приложение вы можете просто обернуть его в сборку и вызвать его из VB6. Мы сделали это в прошлом, и это достаточно просто. Опять же, больше информации, если вы считаете, что это может быть полезно вам

+0

Я должен указать, что библиотека, с которой я связан, может достичь гораздо большего, чем простое использование, на которое я ее помещаю, и пример, который я привел выше, просто представляет это основное использование, которое мы делаем из этого –

+0

Спасибо @kevin. Я рассмотрю это. Мне нужно убедиться, что компания может использовать сторонние инструменты вроде этого. – logixologist

Смежные вопросы