2010-07-02 3 views
3

Есть ли способ конвертировать HTML или PDF в RTF/DOC или HTML/PDF в изображение с помощью DevExpress или Infragistics?Преобразование HTML или PDF в RTF/DOC или HTML/PDF в изображение с использованием DevExpress или Infragistics

Я попытался это с помощью DevExpress:

string html = new StreamReader(Server.MapPath(@".\teste.htm")).ReadToEnd(); 

      RichEditControl richEditControl = new RichEditControl(); 
      string rtf; 
      try 
      { 
       richEditControl.HtmlText = html; 
       rtf = richEditControl.RtfText; 
      } 
      finally 
      { 
       richEditControl.Dispose(); 
      } 

      StreamWriter sw = new StreamWriter(@"D:\teste.rtf"); 
      sw.Write(rtf); 
      sw.Close(); 

Но у меня есть сложное содержание HTML (таблицы, фоны, CSS и т.д.) и конечный результат не хорошо ...

ответ

2

я предлагаю вам используйте последнюю версию DevExpress (версия 10.1.5 на этот раз). Он обрабатывает таблицы намного лучше, чем предыдущие.

Пожалуйста, используйте следующий код, чтобы избежать проблем кодирования (StreamReader и StreamWriter в вашей выборке всегда используется кодировка Encoding.UTF8, это будет коррумпированный любое содержание, сохраненное с другой кодировке):

using (RichEditControl richEditControl = new RichEditControl()) { 
     richEditControl.LoadDocument(Server.MapPath(@".\teste.htm"), DocumentFormat.Html); 
     richEditControl.SaveDocument(@"D:\teste.rtf", DocumentFormat.Rtf); 
    } 

Также обратите внимание на свойства richEditControl.Options.Import.Html и richEditControl.Options.Export.Rtf, вы можете найти их полезными для некоторых случаев.

3

Чтобы преобразовать содержимое Html в изображение или Pdf вы можете использовать следующий код:

using (RichEditControl richEditControl = new RichEditControl()) { 
    richEditControl.LoadDocument(Server.MapPath(@".\teste.htm"), DocumentFormat.Html); 
    using (PrintingSystem ps = new PrintingSystem()) { 
     PrintableComponentLink pcl = new PrintableComponentLink(ps); 
     pcl.Component = richEditControl; 
     pcl.CreateDocument(); 
     //pcl.PrintingSystem.ExportToPdf("teste.pdf"); 
     pcl.PrintingSystem.ExportToImage("teste.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 
    } 
} 
+0

Здравствуйте DevExpress команды! У нас есть версия DevExpress 9.3, и результат в формате PDF, JPG или RTF был неудачным. Источник html очень сложный, много таблиц и CSS. Но, танки для кончика! – Fabio

+0

Поддержка таблиц была введена в XtraRichEdit с версии 10.1. Версия 9.3 может читать только содержимое таблицы как последовательность абзацев. Вот почему вы не можете добиться хороших результатов при преобразовании сложного html с 9.3. –