RTF 2 HTML
Publicado: Jue Abr 28, 2016 11:56 am
Buenas XTeam. Necesito pasar de RTF a HTML pero para esto hay que tener instalado Office y sus librerías de conversión.
Quisiera hacerlo directamente por que el cliente puede no tener siquiera el Office y para eso habría que fabricar un parser, o alguien lo tiene ya hecho, por favor.
He visto funciones en C para ello e intento implementarlas en Xailer pero con nulo resultado
//------------------------------------------------------------------------------
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
//--------------------------------------------------------------------------
XA_FUNC( XRTFTOHTML )
private static string ConvertRtfToXaml(string rtfText)
{
var richTextBox = new RichTextBox();
if (string.IsNullOrEmpty(rtfText)) return ““;
var textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
using (var rtfMemoryStream = new MemoryStream())
{
using (var rtfStreamWriter = new StreamWriter(rtfMemoryStream))
{
rtfStreamWriter.Write(rtfText);
rtfStreamWriter.Flush();
rtfMemoryStream.Seek(0, SeekOrigin.Begin);
textRange.Load(rtfMemoryStream, DataFormats.Rtf);
}
}
using (var rtfMemoryStream = new MemoryStream())
{
textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
textRange.Save(rtfMemoryStream, DataFormats.Xaml);
rtfMemoryStream.Seek(0, SeekOrigin.Begin);
using (var rtfStreamReader = new StreamReader(rtfMemoryStream))
{
return rtfStreamReader.ReadToEnd();
}
}
}
//--------------------------------------------------------------------------
#pragma ENDDUMP
Quisiera hacerlo directamente por que el cliente puede no tener siquiera el Office y para eso habría que fabricar un parser, o alguien lo tiene ya hecho, por favor.
He visto funciones en C para ello e intento implementarlas en Xailer pero con nulo resultado
//------------------------------------------------------------------------------
#pragma BEGINDUMP
#include <windows.h>
#include <xailer.h>
//--------------------------------------------------------------------------
XA_FUNC( XRTFTOHTML )
private static string ConvertRtfToXaml(string rtfText)
{
var richTextBox = new RichTextBox();
if (string.IsNullOrEmpty(rtfText)) return ““;
var textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
using (var rtfMemoryStream = new MemoryStream())
{
using (var rtfStreamWriter = new StreamWriter(rtfMemoryStream))
{
rtfStreamWriter.Write(rtfText);
rtfStreamWriter.Flush();
rtfMemoryStream.Seek(0, SeekOrigin.Begin);
textRange.Load(rtfMemoryStream, DataFormats.Rtf);
}
}
using (var rtfMemoryStream = new MemoryStream())
{
textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
textRange.Save(rtfMemoryStream, DataFormats.Xaml);
rtfMemoryStream.Seek(0, SeekOrigin.Begin);
using (var rtfStreamReader = new StreamReader(rtfMemoryStream))
{
return rtfStreamReader.ReadToEnd();
}
}
}
//--------------------------------------------------------------------------
#pragma ENDDUMP