public void Load( Stream stream ) { using ( SignatureStream signature = new SignatureStream ( "DWRT", stream ) ) { using ( DeflateStream deflate = new DeflateStream ( stream, CompressionMode.Decompress, true ) ) { Initialize (); pages.Clear (); BinaryReader reader = new BinaryReader ( deflate ); switch ( reader.ReadByte () ) { case 0: Title = reader.ReadString (); int authorCount = reader.ReadInt32 (); for ( int i = 0; i < authorCount; ++i ) Authors.Add ( reader.ReadString () ); Copyright = reader.ReadString (); int pageCount = reader.ReadInt32 (); for ( int i = 0; i < pageCount; ++i ) { dWriterPage page = new dWriterPage (); page.Title = reader.ReadString (); page.Created = DateTime.Parse ( reader.ReadString () ); page.Modified = DateTime.Parse ( reader.ReadString () ); switch ( reader.ReadByte () ) { case 0: MemoryStream tempStream = new MemoryStream ( Convert.FromBase64String ( reader.ReadString () ) ); FlowDocument flowDocument = new FlowDocument (); var textRange = new TextRange ( flowDocument.ContentStart, flowDocument.ContentEnd ); textRange.Load ( tempStream, DataFormats.Rtf ); page.Text = flowDocument; tempStream.Dispose (); break; } pages.Add ( page ); } break; } } } }
public void RemovePage( dWriterPage page ) { pages.Remove ( page ); }
public void Insert( int index, dWriterPage page ) { pages.Insert ( index, page ); }