Пример #1
0
        public static string ConvertRtfToXaml(string rtfText)
        {
            var richTextBox = new System.Windows.Controls.RichTextBox();
            if (string.IsNullOrEmpty(rtfText))
                return String.Empty;
            var textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
            using (var rtfMemoryStream = new MemoryStream())
            {
                using (var rtfStreamWriter = new StreamWriter(rtfMemoryStream))
                {
                    rtfStreamWriter.Write(rtfText);
                    rtfStreamWriter.Flush();
                    rtfMemoryStream.Seek(0, SeekOrigin.Begin);
                    textRange.Load(rtfMemoryStream, DataFormats.Rtf);
                }
            }

            using (var rtfMemoryStream = new MemoryStream())
            {
                textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                textRange.Save(rtfMemoryStream, System.Windows.DataFormats.Xaml);
                rtfMemoryStream.Seek(0, SeekOrigin.Begin);
                using (var rtfStreamReader = new StreamReader(rtfMemoryStream))
                {
                    return rtfStreamReader.ReadToEnd();
                }
            }
        }
Пример #2
0
        public void SaveData()
        {
            TextRange sourceDocument = new TextRange(mainRTB.Document.ContentStart, mainRTB.Document.ContentEnd);
            string rtf = "";

            using (MemoryStream stream = new MemoryStream())
            {
                sourceDocument.Save(stream, DataFormats.Rtf);
                stream.Seek(0, SeekOrigin.Begin);

                using (StreamReader reader = new StreamReader(stream))
                {
                    rtf = reader.ReadToEnd();
                }
            }

            if (mIsSummaryNarrative)
            {
                mDataSet.Tables["i9Narrative"].Rows[0]["SummaryNarrative"] = sourceDocument.Text;
                mDataSet.Tables["i9Narrative"].Rows[0]["SummaryNarrativeFormat"] = rtf;
            }
            else
            {
                mDataSet.Tables["i9Narrative"].Rows[0]["Narrative"] = sourceDocument.Text;
                mDataSet.Tables["i9Narrative"].Rows[0]["NarrativeFormat"] = rtf;
            }
        }
Пример #3
0
        public static void AddBlock(Block from, FlowDocument to)
        {
            if (from != null)
              {
            //if (from is ItemsContent)
            //{
            //  ((ItemsContent)from).RunBeforeCopy();
            //}
            //else
            {
              TextRange range = new TextRange(from.ContentStart, from.ContentEnd);

              MemoryStream stream = new MemoryStream();

              System.Windows.Markup.XamlWriter.Save(range, stream);

              range.Save(stream, DataFormats.XamlPackage);

              TextRange textRange2 = new TextRange(to.ContentEnd, to.ContentEnd);

              textRange2.Load(stream, DataFormats.XamlPackage);
            }

              }
        }
Пример #4
0
 private static void LoadRange(RichTextBox richTextBox, TextRange range)
 {
     MemoryStream buffer = new MemoryStream();
     range.Save(buffer, DataFormats.Rtf);
     var rtf = Encoding.UTF8.GetString(buffer.ToArray());
     SetContent(richTextBox, rtf);
 }
Пример #5
0
        /// <summary>
        /// 获取文档分页器
        /// </summary>
        /// <param name="pageWidth"></param>
        /// <param name="pageHeight"></param>
        /// <returns></returns>
        public DocumentPaginator GetPaginator(double pageWidth,double pageHeight)
        {
            //将RichTextBox的文档内容转为XAML
            TextRange originalRange = new TextRange(
            _textBox.Document.ContentStart,
            _textBox.Document.ContentEnd
            );
            MemoryStream memoryStream = new MemoryStream();
            originalRange.Save(memoryStream, System.Windows.DataFormats.XamlPackage);

            //根据XAML将流文档复制一份
            FlowDocument copy = new FlowDocument();

            TextRange copyRange = new TextRange(
            copy.ContentStart,
            copy.ContentEnd
            );
            copyRange.Load(memoryStream, System.Windows.DataFormats.XamlPackage);

            DocumentPaginator paginator =
            ((IDocumentPaginatorSource)copy).DocumentPaginator;

            //转换为新的分页器
            return new PrintingPaginator(
            paginator,new Size( pageWidth,pageHeight),
            new Size(DPI,DPI)
            );
        }
Пример #6
0
 public void SavePost(string postFile)
 {
     FileStream fileStream = new FileStream(postFile, FileMode.Create);
     TextRange range = new TextRange(_postEdit.Document.ContentStart, _postEdit.Document.ContentEnd);
     range.Save(fileStream, DataFormats.Rtf);
     fileStream.Close();
 }
Пример #7
0
        private void open_button_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            openFileDialog1.Filter = @"Evennote File(*.note)|*.note";

            openFileDialog1.RestoreDirectory = true;

            if (openFileDialog1.ShowDialog() == true)
            {
                Note temp = Evennote.OpenNoteFromFile(openFileDialog1.FileName);

                titleTextBox.Text = temp.Title;

                using (MemoryStream mem = new MemoryStream())
                {
                    TextRange range = new TextRange(temp.Text.ContentStart,
                        temp.Text.ContentEnd);
                    range.Save(mem, DataFormats.XamlPackage);
                    mem.Position = 0;

                    TextRange kange = new TextRange(richTextBox.Document.ContentStart,
                        richTextBox.Document.ContentEnd);
                    kange.Load(mem, DataFormats.XamlPackage);
                }
            }
        }
Пример #8
0
        private static string ConvertRtfToXaml(string rtfText)
        {
            var richTextBox = new RichTextBox();
            if (string.IsNullOrEmpty(rtfText)) return "";

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

            //Create a MemoryStream of the Rtf content

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

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

            using (var rtfMemoryStream = new MemoryStream())
            {

                textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                textRange.Save(rtfMemoryStream, DataFormats.Xaml);
                rtfMemoryStream.Seek(0, SeekOrigin.Begin);
                using (var rtfStreamReader = new StreamReader(rtfMemoryStream))
                {
                    return rtfStreamReader.ReadToEnd();
                }
            }
        }
Пример #9
0
 protected override string GetText()
 {
     var rnge = new TextRange(_doc.ContentStart, _doc.ContentEnd);
     var stream = new MemoryStream();
     rnge.Save(stream, DataFormats.Rtf);
     return UTF8Encoding.UTF8.GetString(stream.ToArray());
 }
Пример #10
0
        public UndoLevelStyle(OutlinerNote note)
        {
            __NoteId = note.Id;

            __Before = new MemoryStream[note.Columns.Count];
            __After = new MemoryStream[note.Columns.Count];

            __IsEmpty = true;

            for (int i = 0; i < note.Columns.Count; i++)
            {
                FlowDocument document = note.Columns[i].ColumnData as FlowDocument;
                if (document == null)
                    continue;

                __Before[i] = new MemoryStream();
                __After[i] = new MemoryStream();

                TextRange range = new TextRange(document.ContentStart, document.ContentEnd);
                range.Save(__Before[i], DataFormats.Xaml);

                if (!range.IsEmpty)
                    __IsEmpty = false;

            }
        }
Пример #11
0
 public string GetText(FlowDocument document)
 {
     var tr = new TextRange(document.ContentStart, document.ContentEnd);
     using (var ms = new MemoryStream())
     {
         tr.Save(ms, DataFormats.Xaml);
         return Encoding.Default.GetString(ms.ToArray());
     }
 }
 protected override void SaveCore(IDocument document, string fileName)
 {
     FlowDocument flowDocument = ((RichTextDocument)document).Content;
     TextRange range = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);
     using (FileStream stream = new FileStream(fileName, FileMode.Create))
     {
         range.Save(stream, DataFormats.Rtf);
     }
 }
Пример #13
0
 public string GetText(System.Windows.Documents.FlowDocument document)
 {
     TextRange tr = new TextRange(document.ContentStart, document.ContentEnd);
     using (MemoryStream ms = new MemoryStream())
     {
         tr.Save(ms, DataFormats.Xaml);
         return ASCIIEncoding.Default.GetString(ms.ToArray());
     }
 }
Пример #14
0
 /// <summary>
 /// Gets the RTF Content of a flow document as UTF-8 Encoded string.
 /// </summary>
 /// <param name="document">The flow document for the RTF extracting.</param>
 /// <returns>The RTF content of the flow document as UTF-8 Encoded string.</returns>
 public string GetText(FlowDocument document)
 {
     TextRange tr = new TextRange(document.ContentStart, document.ContentEnd);
     using (MemoryStream ms = new MemoryStream())
     {
         tr.Save(ms, DataFormats.Rtf);
         return Encoding.UTF8.GetString(ms.ToArray());
     }
 }
Пример #15
0
 private static void HandleLostFocus(object sender, RoutedEventArgs e)
 {
     RichTextBox box = sender as RichTextBox;
     TextRange tr = new TextRange(box.Document.ContentStart, box.Document.ContentEnd);
     using (MemoryStream ms = new MemoryStream())
     {
         tr.Save(ms, DataFormats.Xaml);
         string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray());
         SetBoundDocument(box, xamlText);
     }
 }
Пример #16
0
        public static string ToBase64String(this FlowDocument FD)
        {
            //return XamlWriter.Save(FD);
            TextRange tr = new TextRange(FD.ContentStart, FD.ContentEnd);
            MemoryStream ms = new MemoryStream();
            tr.Save(ms, System.Windows.DataFormats.XamlPackage);

            return Convert.ToBase64String(ms.ToArray());
            //SQLData = ASCIIEncoding.Default.GetString(ms.ToArray());
            //You can save this data to SQLServer 
        }
Пример #17
0
 public override void Render (IConsoleBufferSource buffer)
 {
     var document = new FlowDocument();
     RenderToFlowDocument(buffer, document);
     var content = new TextRange(document.ContentStart, document.ContentEnd);
     content.Save(_output, DataFormats.Rtf);
     if (_leaveOpen)
         _output.Flush();
     else
         _output.Dispose();
 }
Пример #18
0
 private void RichTxt_TextChanged(object sender, TextChangedEventArgs e)
 {
     if (!loaded)
         return;
     TextRange range;
     FileStream fStream;
     range = new TextRange(RichTxt.Document.ContentStart, RichTxt.Document.ContentEnd);
     fStream = new FileStream(@"beiit.Xaml", FileMode.Create);
     range.Save(fStream, DataFormats.Xaml);
     fStream.Close();
 }
        public string GetText(FlowDocument document)
        {
            TextRange tr = new TextRange(document.ContentStart, document.ContentEnd);
            if (document.Blocks.Count == 0)
                return string.Empty;

            using (MemoryStream ms = new MemoryStream())
            {
                tr.Save(ms, DataFormats.Rtf);
                return ASCIIEncoding.Default.GetString(ms.ToArray());;
            }
        }
Пример #20
0
        public FormatUndo(FlowDocument document, TextRange range, RichTextBox edit)
        {
            __DataStream = new MemoryStream();

            selectionStartOffset = document.ContentStart.GetOffsetToPosition(range.Start);
            selectionEndOffset = document.ContentEnd.GetOffsetToPosition(range.End);

            if (edit.Selection.IsEmpty)
                __OffsetCursorPositionBefore = document.ContentStart.GetOffsetToPosition(edit.CaretPosition);

            range.Save(__DataStream, DataFormats.Xaml, false);
        }
        private void SaveFileMenuItem_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog dialog = new SaveFileDialog();
            dialog.FileName = filename;
            Nullable<bool> result = dialog.ShowDialog();
            if(result == true)
            {
                TextRange range = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                range.Save(dialog.OpenFile(), DataFormats.Text);
            }

            //range.Save();
        }
Пример #22
0
        public FlowDocument CloneContent()
        {
            FlowDocument clone = new FlowDocument();

            using (MemoryStream stream = new MemoryStream())
            {
                TextRange source = new TextRange(Content.ContentStart, Content.ContentEnd);
                source.Save(stream, DataFormats.Xaml);
                TextRange target = new TextRange(clone.ContentStart, clone.ContentEnd);
                target.Load(stream, DataFormats.Xaml);
            }

            return clone;
        }
Пример #23
0
        public static string RTF(this RichTextBox richTextBox)
        {
            string rtf = string.Empty;
            TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
            using (MemoryStream ms = new MemoryStream())
            {
                textRange.Save(ms, System.Windows.DataFormats.Rtf);
                ms.Seek(0, SeekOrigin.Begin);
                StreamReader sr = new StreamReader(ms);
                rtf = sr.ReadToEnd();
            }

            return rtf;
        }
Пример #24
0
 public bool SaveDocument()
 {
     if (string.IsNullOrEmpty(_currentFile))
         return SaveDocumentAs();
     else
     {
         using (Stream stream = new FileStream(_currentFile, FileMode.Create))
         {
             TextRange range = new TextRange(_textBox.Document.ContentStart, _textBox.Document.ContentEnd);
             range.Save(stream, DataFormats.Rtf);
         }
         return true;
     }
 }
Пример #25
0
        public static void ExportAsRtf(OutlinerDocument document, MainWindow mainWindow, string fileName)
        {
            string documentAsXaml = ExportToXaml_WordFriendly.ExportToXaml(document, mainWindow);
            MemoryStream stream = new MemoryStream();
            StreamWriter writer = new StreamWriter(stream);
            writer.Write(documentAsXaml);
            writer.Flush();
            stream.Seek(0, SeekOrigin.Begin);

            FlowDocument flowDoc = XamlReader.Load(stream) as FlowDocument;
            TextRange range = new TextRange(flowDoc.ContentStart, flowDoc.ContentEnd);
            FileStream fStream = new FileStream(fileName, FileMode.Create);
            range.Save(fStream, DataFormats.Rtf);
            fStream.Close();
        }
 public DocumentPaginator GetPaginator(double pageWidth, double pageHeight)
 {
     TextRange originalRange = new TextRange(
         _FlowDocument.ContentStart,
         _FlowDocument.ContentEnd);
     MemoryStream memoryStream = new MemoryStream();
     originalRange.Save(memoryStream, DataFormats.Xaml);
     FlowDocument copy = new FlowDocument();
     TextRange copyRange = new TextRange(copy.ContentStart, copy.ContentEnd);
     copyRange.Load(memoryStream, DataFormats.Xaml);
     copy.PagePadding = _FlowDocument.PagePadding;
     copy.Background = _FlowDocument.Background;
     DocumentPaginator paginator = ((IDocumentPaginatorSource)copy).DocumentPaginator;
     return new PrintingPaginator(paginator, new Size(pageWidth, pageHeight), new Size(DPI, DPI));
 }
Пример #27
0
        private void UpdateMarkupDisplay()
        {
            TextRange range;

            range = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
            
            MemoryStream stream = new MemoryStream();
            range.Save(stream, DataFormats.Xaml);
            stream.Position = 0;

            StreamReader r = new StreamReader(stream);

            txtFlowDocumentMarkup.Text = r.ReadToEnd();
            r.Close();
            stream.Close();
        }
Пример #28
0
        public override void Undo(RichTextBox edit)
        {
            FlowDocument document = edit.Document;

            __OffsetCursorPositionAfter = document.ContentStart.GetOffsetToPosition(edit.CaretPosition);

            TextPointer start = UndoHelpers.SafePositionAtOffset(document, document.ContentStart, __OffsetStart);
            TextPointer end = UndoHelpers.SafePositionAtOffset(document, document.ContentEnd, __OffsetEnd);
            TextRange range = new TextRange(start, end);
            __DataStream = new MemoryStream();
            range.Save(__DataStream, DataFormats.Xaml);
            range.ClearAllProperties();
            range.Text = "";

            edit.CaretPosition = UndoHelpers.SafePositionAtOffset(document, document.ContentStart, __OffsetCursorPositionBefore);
        }
        public UndoFlowDocumentFormatting(OutlinerNote note, int columnId, bool isInlineNote, bool wasSelected)
        {
            __NoteId = note.Id;
            __ColumnId = columnId;
            __IsInlineNote = isInlineNote;

            __Before = new MemoryStream();

            FlowDocument flowDocument = (FlowDocument)note.Columns[columnId].ColumnData;

            __FontPropertiesBefore = new FontProperties(flowDocument);

            TextRange range = new TextRange(flowDocument.ContentStart, flowDocument.ContentEnd);
            range.Save(__Before, DataFormats.Xaml);

            __WasSelected = wasSelected;
        }
Пример #30
0
        private void saveMenuItem_Click(object sender, RoutedEventArgs e)
        {

            SaveFileDialog dlg = new SaveFileDialog();
            dlg.Filter = "Rich Text Format (*.rtf)|*.rtf|All files (*.*)|*.*";
            if (dlg.ShowDialog() == true)
            {
                FileStream fileStream = new FileStream(dlg.FileName, FileMode.Create);
                TextRange range = new TextRange(editSpace.Document.ContentStart, editSpace.Document.ContentEnd);
                range.Save(fileStream, DataFormats.Rtf);
                fileStream.Close();
                selector.GetCurrentSelection().Title = dlg.SafeFileName.Split('.')[0];
            }

            

        }
Пример #31
0
        /// <summary>
        /// Converts RichTextBox text to string made up of xaml data. Searches for bolded words and inserts them into query.
        /// </summary>
        private void extractBoldedWordsFromBody(RichTextBox rtb)
        {
            // Convert RichTextbox text to string made of xaml data
            System.Windows.Documents.TextRange tr =
                new System.Windows.Documents.TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
            MemoryStream ms = new MemoryStream();

            tr.Save(ms, DataFormats.Xaml);
            string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray());

            const string startDelimeter = "<Run FontWeight=\"Bold\">";
            const string endDelimeter   = "</Run>";

            int start = 0;
            int end   = 0;

            string[] temp;

            // Find all bolded sections in xamlText
            while ((start = xamlText.IndexOf(startDelimeter, end)) != -1)
            {
                // Find start and end position to each bolded sections
                start += startDelimeter.Length;
                end    = xamlText.IndexOf(endDelimeter, start);

                // Separate words
                temp = xamlText.Substring(start, end - start).Split();

                // Remove any whitespace entries
                temp = temp.Where(x => !string.IsNullOrEmpty(x)).ToArray();

                // Join new words with query
                query.AddRange(temp);

                end += endDelimeter.Length;
            }
        }
Пример #32
0
        private static string ConvertRtfToXaml(string rtfText)
        {
            var richTextBox = new RichTextBox();

            if (string.IsNullOrEmpty(rtfText))
            {
                return("");
            }

            var textRange = new System.Windows.Documents.TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);

            //Create a MemoryStream of the Rtf content

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

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

            using (var rtfMemoryStream = new MemoryStream())
            {
                textRange = new System.Windows.Documents.TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                textRange.Save(rtfMemoryStream, DataFormats.Xaml);
                rtfMemoryStream.Seek(0, SeekOrigin.Begin);
                using (var rtfStreamReader = new StreamReader(rtfMemoryStream))
                {
                    return(rtfStreamReader.ReadToEnd());
                }
            }
        }