El codigo descrito en mi caso tenia un comportamiento errático en tiempo de proceso al ejecutarse muchas veces, llegando a estar 20 segundos para una sola transformación en cambio este me ha ido perfecto y rápido...
Código Delphi
[-]uses
MSHTML,
SHDocVw,
ActiveX;
function GetPlainText(Const Html: string): string;
var
DummyWebBrowser: TWebBrowser;
Document : IHtmlDocument2;
DummyVar : Variant;
begin
Result := '';
DummyWebBrowser := TWebBrowser.Create(nil);
try
DummyWebBrowser.Navigate('about:blank');
Document := DummyWebBrowser.Document as IHtmlDocument2;
if (Assigned(Document)) then begin
DummyVar := VarArrayCreate([0, 0], varVariant); DummyVar[0] := Html; Document.Write(PSafeArray(TVarData(DummyVar).VArray)); Document.Close;
Result :=(Document.body as IHTMLBodyElement).createTextRange.text; end;
finally
DummyWebBrowser.Free;
end;
end;