Hello,
I’m currently working with Aspose.Words to convert a RTF value to an HTML one.
As far as I’ve went, I’m currently having a strange issue with the dll.
My RTF value is stored in db when I load a Document with it and try to convert it to an HTML string, I’ve got something like this :
{\rtf1\deff0{\fonttbl{\f0 Times New Roman;}{\f1 Arial Narrow;}}{\colortbl\red0\green0\blue0 ;\red0\green0\blue255 ;}{*\listoverridetable}{\stylesheet {\ql\cf0 Normal;}{*\cs1\cf0 Default Paragraph Font;}{*\cs2\sbasedon1\cf0 Line Number;}{*\cs3\ul\cf1\ulc1 Hyperlink;}}\sectd\pard\plain\ql{\f1\fs18\cf0 1. Il est stipul\u233’e9 express\u233’e9ment que la … [rest of the rtf] …
The dll isn’t converting the rtf value, it just wrapped it inside some html tags.
But, when I take the rtf value, put in in a file, read it and give this Stream to load the document, everything works fine.
My problem is :
I have to read my rtf value from database and can’t create a temporary rtf file.
What can I do ?
Here is my code :
// this is the part that didn’t work, read from db
public static string FromRTFString(string rtf)
{
var txt = string.Empty;
using (var memoryStream = new MemoryStream())
{
var streamWriter = new StreamWriter(memoryStream, Encoding.UTF8);
streamWriter.Write(rtf);
streamWriter.Flush();
txt = RtfToHTML(memoryStream);
}
return txt;
}
// this is the part that works, reads from file
private void Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "RTF files|*.rtf" })
{
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var stream = new FileStream(ofd.FileName, FileMode.Open);
MessageBox.Show(AsposeRTFHelper.RtfToHTML(stream));
}
}
}
public static string RtfToHTML(Stream stream)
{
var loadOptions = new LoadOptions() { LoadFormat = LoadFormat.Rtf };
var doc = new Aspose.Words.Document(stream, loadOptions);
return doc.ToString(SaveFormat.Html);
}
Thanks for your help !