Saves the annotation objects to a stream.
Syntax
Parameters
- stream
- The stream to which to save the objects.
- container
- An AnnContainer containing the objects to be saved.
- format
- An AnnCodecsFormat value that specifies the annotation
format to be used when saving.
- page
- 1-based index of the page to be saved.
- pageMode
- A value that indicates how to handle the page when saving to a
multi-page stream.
Example
Visual Basic | Copy Code |
---|
Public Sub AnnCodecs_Save()
Dim container As AnnContainer = New AnnContainer()
Dim rectObj As AnnRectangleObject = New AnnRectangleObject()
rectObj.Left = 100
rectObj.Top = 100
rectObj.Width = 100
rectObj.Height = 100
rectObj.Stroke = Brushes.Blue
rectObj.StrokeThickness = 1.0
rectObj.Fill = Nothing
container.Children.Add(rectObj)
Dim lineObj As AnnLineObject = New AnnLineObject()
lineObj.X1 = 100
lineObj.Y1 = 100
lineObj.X2 = 200
lineObj.Y2 = 200
lineObj.Stroke = Brushes.Red
lineObj.StrokeThickness = 1.0
container.Children.Add(lineObj)
MessageBox.Show(String.Format("Before Save: Container has {0} objects", container.Children.Count))
Using ms As MemoryStream = New MemoryStream()
Dim codecs As AnnCodecs = New AnnCodecs()
codecs.Save(ms, container, AnnCodecsFormat.Serialize, 1, AnnCodecsSavePageMode.Overwrite)
container.Children.Clear()
MessageBox.Show(String.Format("After Save and Clear: Container has {0} objects, Stream size: {1}", container.Children.Count, ms.Length))
ms.Position = 0
Dim information As AnnCodecsInformation = New AnnCodecsInformation()
codecs.GetInformation(ms, information)
MessageBox.Show(String.Format("Format: {0}, Number of pages: {1}", information.Format, information.Pages))
codecs.Load(ms, container, 1)
MessageBox.Show(String.Format("After Load: Container has {0} objects", container.Children.Count))
End Using
End Sub |
C# | Copy Code |
---|
public void AnnCodecs_Save() { // create a new annotation container AnnContainer container = new AnnContainer(); // add a few objects into the container AnnRectangleObject rectObj = new AnnRectangleObject(); rectObj.Left = 100; rectObj.Top = 100; rectObj.Width = 100; rectObj.Height = 100; rectObj.Stroke = Brushes.Blue; rectObj.StrokeThickness = 1.0; rectObj.Fill = null; container.Children.Add(rectObj); AnnLineObject lineObj = new AnnLineObject(); lineObj.X1 = 100; lineObj.Y1 = 100; lineObj.X2 = 200; lineObj.Y2 = 200; lineObj.Stroke = Brushes.Red; lineObj.StrokeThickness = 1.0; container.Children.Add(lineObj); MessageBox.Show(string.Format("Before Save: Container has {0} objects", container.Children.Count)); // create a memory stream to save the objects into using (MemoryStream ms = new MemoryStream()) { // create a new AnnCodecs class AnnCodecs codecs = new AnnCodecs(); // save the objects in this container codecs.Save(ms, container, AnnCodecsFormat.Serialize, 1, AnnCodecsSavePageMode.Overwrite); // clear the container container.Children.Clear(); MessageBox.Show(string.Format("After Save and Clear: Container has {0} objects, Stream size: {1}", container.Children.Count, ms.Length)); // get information about the stream // note, the Save method does not seek the stream back to its original position, so do that now ms.Position = 0; AnnCodecsInformation information = new AnnCodecsInformation(); codecs.GetInformation(ms, information); MessageBox.Show(string.Format("Format: {0}, Number of pages: {1}", information.Format, information.Pages)); // load the objects back from the stream codecs.Load(ms, container, 1); MessageBox.Show(String.Format("After Load: Container has {0} objects", container.Children.Count)); } } |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Vista, and Windows Server 2003 family
See Also