示例#1
0
        /// <summary>
        /// 导出笔记
        /// </summary>
        /// <param name="parameter"></param>
        private void Export(object parameter)
        {
            if (parameter == null)
            {
                return;
            }

            byte b;

            if (!byte.TryParse(parameter.ToString(), out b))
            {
                return;
            }

            Logic.Enums.ExportTypes type = (Logic.Enums.ExportTypes)b;


            var fileConfig = new TestExerciser.Diary.Common.Dialog.FileConfig
            {
                FileName = this.GetFileName(type),
                Filter   = this.GetFileFilter(type),
                Title    = "导出路径"
            };

            this.DialogService.SaveFile(fileConfig, stream =>
            {
                using (var writer = new StreamWriter(stream))
                {
                    switch (type)
                    {
                    case Logic.Enums.ExportTypes.PlainText:
                        writer.Write(this.Summary);
                        break;

                    case Logic.Enums.ExportTypes.Word:
                        writer.Write(this.Content);
                        break;

                    case Logic.Enums.ExportTypes.Html:
                        var converter = new MarkupConverter.MarkupConverter();
                        writer.Write(converter.ConvertRtfToHtml(this.Content));
                        break;
                    }
                }
            });
        }
示例#2
0
        public void ExportToHTML( Stream stream )
        {
            StreamWriter writer = new StreamWriter ( stream );
            writer.WriteLine ( $"<!DOCTYPE html><html><head><meta charset='utf-8'><title>{Title}</title></head><body><h1>{Title}</h1>" );
            writer.WriteLine ( $"<p>{Copyright.Replace ( "<", "&lt;" ).Replace ( ">", "&gt;" )}</p>" );
            writer.WriteLine ( $"<p>Author: {string.Join ( ", ", Authors ).Replace ( "<", "&lt;" ).Replace ( ">", "&gt;" )}</p>" );

            writer.Flush ();

            var markupConverter = new MarkupConverter.MarkupConverter ();
            foreach ( var page in Pages )
            {
                writer.WriteLine ( $"<hr><h2>{page.Title.Replace ( "<", "&lt;" ).Replace ( ">", "&gt;" )}</h2>" );
                var textRange = new TextRange ( page.Text.ContentStart, page.Text.ContentEnd );
                MemoryStream tempStream = new MemoryStream ();
                textRange.Save ( tempStream, DataFormats.Rtf );
                var rtf = Encoding.UTF8.GetString ( tempStream.ToArray () );
                tempStream.Dispose ();
                var html = markupConverter.ConvertRtfToHtml ( rtf );
                writer.WriteLine ( html );

                writer.Flush ();
            }

            writer.WriteLine ( "</body></html>" );
            writer.Flush ();
        }