Leadtools.Windows.Annotations Requires Document/Medical license. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
Save(Stream,AnnContainer,AnnCodecsFormat,Int32,AnnCodecsSavePageMode) Method
See Also  Example
Leadtools.Windows.Annotations Namespace > AnnCodecs Class > Save Method : Save(Stream,AnnContainer,AnnCodecsFormat,Int32,AnnCodecsSavePageMode) Method



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.
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.
Saves the annotation objects to a stream.

Syntax

Visual Basic (Declaration) 
Overloads Public Sub Save( _
   ByVal stream As Stream, _
   ByVal container As AnnContainer, _
   ByVal format As AnnCodecsFormat, _
   ByVal page As Integer, _
   ByVal pageMode As AnnCodecsSavePageMode _
) 
Visual Basic (Usage)Copy Code
Dim instance As AnnCodecs
Dim stream As Stream
Dim container As AnnContainer
Dim format As AnnCodecsFormat
Dim page As Integer
Dim pageMode As AnnCodecsSavePageMode
 
instance.Save(stream, container, format, page, pageMode)
C# 
public void Save( 
   Stream stream,
   AnnContainer container,
   AnnCodecsFormat format,
   int page,
   AnnCodecsSavePageMode pageMode
)
C++/CLI 
public:
void Save( 
   Stream^ stream,
   AnnContainer^ container,
   AnnCodecsFormat format,
   int page,
   AnnCodecsSavePageMode pageMode
) 

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 BasicCopy Code
Public Sub AnnCodecs_Save()
  ' create a new annotation container
  Dim container As AnnContainer = New AnnContainer()
  ' add a few objects into the container

  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))

  ' create a memory stream to save the objects into
    Using ms As MemoryStream = New MemoryStream()
       ' create a new AnnCodecs class
       Dim codecs As AnnCodecs = 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
       Dim information As AnnCodecsInformation = 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))
    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

pageMode can be one of the following:
ModeDescription
AnnCodecsSavePageMode.OverwriteThe stream will be overwritten and all previous information will be lost. The value of page must be 1 or -1 (if appending the objects as the last page).
AnnCodecsSavePageMode.InsertThe stream must have valid annotation objects saved to it. The value of page must be between 1 and the total number of pages in the stream. A value of -1 will append the objects as the last page.
AnnCodecsSavePageMode.ReplaceThe stream must have valid annotation objects saved to it. The value of page must be between 1 and total number of pages in the stream.

This method will not position the stream back to its original position before it returns. It is your responsibility to position the stream back before you can load objects from this stream.

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Vista, and Windows Server 2003 family

See Also

Save(Stream,AnnContainer,AnnCodecsFormat,Int32,AnnCodecsSavePageMode) requires a Document/Medical product license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features and Unlocking Special LEAD Features.