Кто-нибудь знает, есть ли способ вне использования элемента управления текстовым полем третьей стороны, чтобы ввести HTML в текстовое поле VB6.Богатый текст в текстовом поле VB6
Я ничего не нашел в Интернете.
Кто-нибудь знает, есть ли способ вне использования элемента управления текстовым полем третьей стороны, чтобы ввести HTML в текстовое поле VB6.Богатый текст в текстовом поле VB6
Я ничего не нашел в Интернете.
Надеюсь, вы сможете это использовать. Мы делаем это в .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. Мы сделали это в прошлом, и это достаточно просто. Опять же, больше информации, если вы считаете, что это может быть полезно вам
Я должен указать, что библиотека, с которой я связан, может достичь гораздо большего, чем простое использование, на которое я ее помещаю, и пример, который я привел выше, просто представляет это основное использование, которое мы делаем из этого –
Спасибо @kevin. Я рассмотрю это. Мне нужно убедиться, что компания может использовать сторонние инструменты вроде этого. – logixologist
Можете ли вы избежать использования текстового поля RTF и преобразования вывода в HTML? Это подход, который мы использовали недавно, который хорошо работает для наших требований. Я могу предоставить более подробную информацию, если она используется –
В VB6 есть RTF-блок? – logixologist
Извиняюсь, я как раз собирался обновить свой ответ после того, как заметил, что вы используете VB6. –