|
<< Нажмите, чтобы показать Содержание >> Извлечение HTML из RTF |
Модуль [VCL/FMX] RVRTFDeEncapsulation / fmxRVRTFDeEncapsulation;
type
TRVAttachmentPositionEvent = procedure (Pos: Integer;
var TextToInsert: TRVUnicodeString) of object;
TRVRTFEncapsulationType = (rvrtfetNone, rvrtfetHTML,
rvrtfetText, rvrtfetError);
function GetRTFEncapsulationType(
RTFStream: TStream): TRVRTFEncapsulationType;
function ExtractEncapsulatedHTMLFromRTF(RTFStream, HTMLStream: TStream;
OnAttachmentPosition: TRVAttachmentPositionEvent = nil): Boolean;
Инкапсуляция HTML в RTF выполняется Microsoft Outlook/Exchange. В результате создаётся RTF-файл на основе HTML. Внешне он близок к исходному HTML-файлу, то есть содержит RTF-код, имитирующий исходный HTML-документ, но при этом содержит данные, позволяющие извлечь исходный HTML-документ без изменений.
GetRTFEncapsulationType проверяет, содержит ли указанный поток HTML или обычный текст, инкапсулированный в RTF.
Возможные возвращаемые значения:
▪rvrtfetNone – RTF без инкапсуляции;
▪rvrtfetHTML – RTF, содержащий инкапсулированный HTML;
▪rvrtfetText – RTF, содержащий инкапсулированный обычный текст;
▪rvrtfetError – данные не являются RTF.
ExtractEncapsulatedHTMLFromRTF извлекает инкапсулированный HTML или обычный текст из RTF, копируя данные из RTFStream в HTMLStream.
Если также задана функция обратного вызова OnAttachmentPosition, она вызывается при обнаружении позиции вложения. В этом обработчике можно запомнить позицию в HTMLStream, где находится вложение, и/или вставить в результирующий HTML или текст дополнительные данные в эту позицию.
См. также: