/// <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; } } }); }
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 ( "<", "<" ).Replace ( ">", ">" )}</p>" ); writer.WriteLine ( $"<p>Author: {string.Join ( ", ", Authors ).Replace ( "<", "<" ).Replace ( ">", ">" )}</p>" ); writer.Flush (); var markupConverter = new MarkupConverter.MarkupConverter (); foreach ( var page in Pages ) { writer.WriteLine ( $"<hr><h2>{page.Title.Replace ( "<", "<" ).Replace ( ">", ">" )}</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 (); }