To reproduce: - Open a document that contains symbols with the 2015 Q3 SP1 version. - Export the document using the docx format. - Open it again. Workaround: private void radRichTextEditor1_DocumentChanged(object sender, EventArgs e) { this.SelectAllMatches(""); this.radRichTextEditor1.ChangeFontFamily(new Telerik.WinControls.RichTextEditor.UI.FontFamily("Symbol")); this.SelectAllMatches(""); this.radRichTextEditor1.ChangeFontFamily(new Telerik.WinControls.RichTextEditor.UI.FontFamily("Symbol")); } private void SelectAllMatches(string toSearch) { this.radRichTextEditor1.Document.Selection.Clear(); DocumentTextSearch search = new DocumentTextSearch(this.radRichTextEditor1.Document); foreach (var textRange in search.FindAll(toSearch)) { this.radRichTextEditor1.Document.Selection.AddSelectionStart(textRange.StartPosition); this.radRichTextEditor1.Document.Selection.AddSelectionEnd(textRange.EndPosition); } }
To reproduce: 1 Please change the font via selection list first. 2 Set text cursor to font input field and select the whole text (if not already done). 3 Press backspace or delete key. 4 An error message appears. Workaround: protected override void DropDownListFont_SelectedIndexChanged(object sender, PositionChangedEventArgs e) { var ddl = sender as RadDropDownListElement; if (ddl.SelectedItem != null) { base.DropDownListFont_SelectedIndexChanged(sender, e); } }
To reproduce: private void radButton1_Click(object sender, EventArgs e) { var document = new RadDocument(); var section = new Section(); document.Sections.Add(section); var paragraph = new Paragraph(); section.Blocks.Add(paragraph); var span = new Span("BOLD"); span.FontWeight = FontWeights.Bold; paragraph.Inlines.Add(span); span = new Span(" REGULAR"); paragraph.Inlines.Add(span); editor.Document = document; var pdfExporter = new PdfFormatProvider(); var path = Path.GetTempFileName() + ".pdf"; using (var file = File.Create(path)) { pdfExporter.Export(document, file); file.Flush(); file.Close(); } Process.Start(path); } Workaround: export .docx file and use the RadWordsProcessing library to import the .doc file and export it to pdf: private void radButton1_Click(object sender, EventArgs e) { var document = new RadDocument(); var section = new Section(); document.Sections.Add(section); var paragraph = new Paragraph(); section.Blocks.Add(paragraph); var span = new Span("BOLD"); span.FontWeight = FontWeights.Bold; paragraph.Inlines.Add(span); span = new Span(" REGULAR"); paragraph.Inlines.Add(span); editor.Document = document; var wordExporter = new Telerik.WinForms.Documents.FormatProviders.OpenXml.Docx.DocxFormatProvider(); var wordPath = Path.GetTempFileName() + ".doc"; using (var file = File.Create(wordPath)) { wordExporter.Export(document, file); file.Flush(); file.Close(); } Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider(); using (Stream input = File.OpenRead(wordPath)) { Telerik.Windows.Documents.Flow.Model.RadFlowDocument doc = provider.Import(input); Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider pdfProvider = new Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider(); string filePath = @"..\..\" + DateTime.Now.ToLongTimeString().Replace(":", "-"); using (var output = File.Create(filePath)) { pdfProvider.Export(doc, output); } Process.Start(filePath); } }
To reproduce: Please refer to the attached sample application and video demonstrating the experience issue. Workaround: Set RadRichTextEditor to null in Form`s Dispose method: Protected Overrides Sub Dispose(ByVal disposing As Boolean) Me.RadRichTextEditor1 = Nothing Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub
The attached video shows how you can reproduce this.
This field retrieves a character through a code value specified in the field-argument. Such documents are common and are created when symbols (e.g. with font Windings through Insert -> Symbol dialog) are inserted in RTF documents in MS Word.
To reproduce: - Click the InsertMergeFiled button before setting the data source. - Set the data source. - Click the button again. - There are no items in it. Workaround: Friend Class MyRichTextEditorRibbonBar Inherits RichTextEditorRibbonBar Protected Overrides Sub dropDownButtonInsertMergeField_DropDownOpening(sender As Object, e As CancelEventArgs) MyBase.dropDownButtonInsertMergeField_DropDownOpening(sender, e) If Me.dropDownButtonInsertMergeField.Items.Count = 0 Then Me.dropDownButtonInsertMergeField.Items.Add(New RadItem) End If End Sub End Class
How to reproduce: check the attached video Workaround: public partial class Form1 : Form { private RadButtonElement buttonHeader; private RadButtonElement buttonFooter; public Form1() { InitializeComponent(); this.buttonHeader = (RadButtonElement)this.richTextEditorRibbonBar1.GetType().GetField("buttonHeader", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this.richTextEditorRibbonBar1); this.buttonFooter = (RadButtonElement)this.richTextEditorRibbonBar1.GetType().GetField("buttonFooter", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this.richTextEditorRibbonBar1); this.radRichTextEditor1.RichTextBoxElement.IsInHeaderFooterEditModeChanged += RichTextBoxElement_IsInHeaderFooterEditModeChanged; } private void RichTextBoxElement_IsInHeaderFooterEditModeChanged(object sender, EventArgs e) { if (!this.radRichTextEditor1.RichTextBoxElement.IsInHeaderFooterEditMode) { this.buttonHeader.Enabled = true; this.buttonFooter.Enabled = true; } else { this.buttonHeader.Enabled = false; this.buttonFooter.Enabled = false; } } }
Workaround: private void ClearDictionaries(RadRichTextEditor editor) { var dictionaries = typeof(DocumentSpellChecker).GetField("dictionaries", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(editor.SpellChecker) as Dictionary<CultureInfo, Lazy<IWordDictionary>>; dictionaries.Clear(); var customDictionaries = typeof(DocumentSpellChecker).GetField("customDictionaries", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(editor.SpellChecker) as Dictionary<CultureInfo, ICustomWordDictionary>; customDictionaries.Clear(); }
To reproduce: please refer to the attached sample project. You will notice that the exported HTML content from the left RadRichTextEditor is imported to the right and the bullets are not the same.
To reproduce: try to hide the caret: this.radRichTextEditor1.CaretWidth = 0; Workaround: //Flow layout this.radRichTextEditor1.LayoutMode = DocumentLayoutMode.Flow; Telerik.WinControls.RichTextEditor.UI.DocumentWebLayoutPresenter webLayoutPresenter = this.radRichTextEditor1.RichTextBoxElement.ActiveEditorPresenter as Telerik.WinControls.RichTextEditor.UI.DocumentWebLayoutPresenter; webLayoutPresenter.Caret.Width = 0; //Page layout this.radRichTextEditor1.LayoutMode = DocumentLayoutMode.Paged; Telerik.WinControls.RichTextEditor.UI.DocumentPrintLayoutPresenter activeEditorPresenter1 = this.radRichTextEditor1.RichTextBoxElement.ActiveEditorPresenter as DocumentPrintLayoutPresenter; activeEditorPresenter1.Caret.Width = 0;
How to reproduce: set the page view in backstage, add a page item and set its text to be very long Workaround: use the custom theme
This functionality will decrease the size of the exported document.
Currently, the document won't be imported due to an exception when decoding the base64 string image source. The expected behavior is the document to be imported and the image to be shown as a missing image.
How to reproduce: set the RadRichTextEditor.IsReadOnly property to true, focus the control, use the Ctrl + K shortcut. The InsertHyperlinkDialog will be opened. Workaround: handle the CommandExecuting event public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radRichTextEditor1.IsReadOnly = true; this.radRichTextEditor1.CommandExecuting += RadRichTextEditor1_CommandExecuting; } private void RadRichTextEditor1_CommandExecuting(object sender, Telerik.WinForms.Documents.RichTextBoxCommands.CommandExecutingEventArgs e) { if (this.radRichTextEditor1.IsReadOnly && e.Command is ShowInsertHyperlinkDialogCommand) { e.Cancel = true; } } }
The new functionality should allow the developer to load custom fonts in the memory and then use them in RadRichTextEditor.
In certain fonts the caret is drawn on part of the last inputted character