2013-12-18 4 views
1

при использовании этого кода для загрузки данных в QPFЗагрузка данных с РТФ макияжем исключением со следующими данными только

public static void LoadRTF(string rtf, RichTextBox richTextBox) 
    { 

     if (string.IsNullOrEmpty(rtf)) 
     { 
      throw new ArgumentNullException(); 
     } 

     TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd); 

     //Create a MemoryStream of the Rtf content 

     using (MemoryStream rtfMemoryStream = new MemoryStream()) 
     { 
      using (StreamWriter rtfStreamWriter = new StreamWriter(rtfMemoryStream)) 
      { 
       rtfStreamWriter.Write(rtf); 
       rtfStreamWriter.Flush(); 
       rtfMemoryStream.Seek(0, SeekOrigin.Begin); 

       //Load the MemoryStream into TextRange ranging from start to end of RichTextBox. 
       try 
       { 
        textRange.Load(rtfMemoryStream, DataFormats.Rtf); 
       } 
       catch { Exception ex; } 
      } 
     } 
    } 

приложение сгенерирует исключение под названием

Непризнанный структура в формате данных «Rich Text Format »\ г \ nParameter. имя: поток

данные

<span dir="LTR" style="font-size: 9pt; background: none repeat scroll 0% 0% transparent; font-family: &quot;verdana&quot;,&quot;sans-serif&quot;; color: #444444;">Abu Dhabi Retirement Pensions &amp; Benefits Fund has announced that the Fund has fully enabled 37 electronic services provided via its online portal that was launched on June 2012. This is an indication of the Fund&rsquo;s concern to convoy Abu Dhabi&rsquo;s Government Vision and the Fund&rsquo;s strategy. There are 17 services which are allocated for entities. 775 governmental, semi-governmental and private entities are using these services and 2716 transactions have been accomplished last July. 13 other electronic services were categorized as general services targeted the active members, pensioners, and entities in which these services were used 2056 times since they were launched.&nbsp;</span><span dir="LTR" style="font-size: 9pt; font-family: &quot;verdana&quot;,&quot;sans-serif&quot;; color: #444444;"><br /> <span style="background: none repeat scroll 0% 0% transparent;">Moreover, there are seven electronic services presented to the partners from governmental and semi-governmental entities in order to ease the exchanging of information and transactions among the entities and the Fund and to support Abu Dhabi&rsquo;s government strategy to develop services.&nbsp;</span><br /> <span style="background: none repeat scroll 0% 0% transparent;">12 electronic services are expected to be launched for pensioners and beneficiaries and active members in 2014 which will enhance the level of the provided services.</span></span> 

это формат rtf, что является ошибкой {\ rtf1 \ ansi \ ansicpg1252 \ uc1 \ htmautsp \ deff2 {\ fonttbl {\ f0 \ fcharset0 Times New Roman;} {\ f2 \ fcharset0 Segoe UI;} {\ f3 \ fcharset0 verdana ";}} {\ colortbl \ red0 \ green0 \ blue0; \ red255 \ green255 \ blue255; \ red68 \ green68 \ blue68;} \ loch \ hich \ dbch \ pard \ plain \ ltrpar \ itap0 {\ lang1033 \ fs18 \ f2 \ cf0 \ cf0 \ ql {\ f2 {\ loch \ f3 \ cf2 \ ltrch Пенсионные пенсии Абу-Даби & Фонд льгот объявил, что Фонд полностью разрешил 37 электронных услуг, предоставляемых через его онлайн-портал, который был запущен в июне Это свидетельствует о том, что Фонд обеспокоен конвоем правительства Абу-Даби и правительством и стратегией Фонда. Есть 17 услуг, которые выделяются для юридических лиц. Эти службы пользуются 775 правительственными, полуправительственными и частными организациями, и в июле прошлого года было совершено 2716 транзакций. 13 других электронных услуг были классифицированы как общие службы, предназначенные для активных членов, пенсионеров и организаций, в которых эти службы использовались 2056 раз с момента их запуска. } \ line {\ loch \ f3 \ cf2 \ ltrch Кроме того, для партнеров из правительственных и полуправительственных организаций представлено семь электронных услуг, чтобы облегчить обмен информацией и транзакциями между организациями и Фондом и поддержать Абу Dhabi \ rquote s правительственная стратегия развития услуг. Ожидается, что электронные услуги будут предоставлены для пенсионеров и бенефициаров и активных членов в 2014 году, что повысит уровень предоставляемых услуг.} \ li0 \ ri0 \ sa0 \ sb0 \ fi0 \ ql \ par} } }

+0

На какой линии ??? –

+0

textRange.Load (rtfMemoryStream, DataFormats.Rtf); –

+0

Причина в том, что данные не RTF, его HTML. Он не может найти теги стиля RTF. – paqogomez

ответ

1

пядь не РТФ тег, это HTML, следовательно, «Непризнанный структура» исключение сообщение

попробуйте использовать тег вместо этого, или поместить ваш источник HTML корыта HTML> RTF конвертер первый.

редактировать:

хорошо, поэтому Span не является допустимым РТФ тег, но это допустимый класс МОФ, который хорошо в FlowDocument, так что я предполагаю, что это может работать в этой ситуации.

есть одна проблема с вашим кодом, хотя: класс диапазона, кажется, не имеют какой-либо собственности «Dir»: http://msdn.microsoft.com/en-us/library/system.windows.documents.span%28v=vs.110%29.aspx

, поэтому я хотел бы предложить удаления реж = «л» (что бесполезно в этом случае в любом случае, если я не ошибаюсь)

+0

Но у меня уже есть еще одна строка данных, которая включает пробелы, и она отлично работает –

Смежные вопросы