從看文章我相信你正在尋找的類是RtfHtmlConverter
。
最簡單的方法是將Release文件夾中的所有.dll文件複製到項目中的文件夾中(也可以在此處放置所有其他依賴項)。然後,右鍵單擊項目中的References
文件夾(在VS解決方案資源管理器中),(當對話框打開時)使用「瀏覽」查找適當的程序集。
然後,您可以使用本文中提供的例子爲RTF輸入流轉換爲HTML字符串:
從article you specified採取所有學分筆者(雖然略有修改,返回值,而不是打印它安慰):
public string ConvertRtf2Html(Stream rtfStream)
{
// logger
RtfInterpreterListenerFileLogger logger =
new RtfInterpreterListenerFileLogger(@"c:\temp\RtfInterpreter.log");
// image converter
// convert all images to JPG
RtfVisualImageAdapter imageAdapter =
new RtfVisualImageAdapter(ImageFormat.Jpeg);
RtfImageConvertSettings imageConvertSettings =
new RtfImageConvertSettings(imageAdapter);
imageConvertSettings.ScaleImage = true; // scale images
RtfImageConverter imageConverter =
new RtfImageConverter(imageConvertSettings);
// interpreter
IRtfDocument rtfDocument = RtfInterpreterTool.Interpret(rtfStream,
logger, imageConverter);
// html converter
RtfHtmlConvertSettings htmlConvertSettings =
new RtfHtmlConvertSettings(imageAdapter);
htmlConvertSettings.StyleSheetLinks.Add("default.css");
RtfHtmlConverter htmlConverter = new RtfHtmlConverter(rtfDocument,
htmlConvertSettings);
return htmlConverter.Convert();
}
您可以添加它接受一個字符串的重載:
public string ConvertRtfToHtml(string rtfString)
{
string sourceRtf = "some rtf";
byte[] data = ASCIIEncoding.Default.GetBytes(sourceRtf);
using (MemoryStream ms = new MemoryStream(data))
{
// call the method above
return ConvertRtfToHtml(ms);
}
}
您還需要加s everal using
條款,您的源文件的開頭,包括必要的命名空間:
using Itenso.Rtf.Interpreter;
using Itenso.Rtf.Converter.Html;
using Itenso.Rtf.Converter.Image;
謝謝你。指出我在正確的方向。 – Yash 2011-05-13 17:24:39