(Leadtools.Annotations.Core)

フレームを表示

AnnCodecsクラス






メンバ 
アノテーションファイルへのオブジェクトをロードして保存するためのサポートを提供します。
オブジェクトモデル
構文
public class AnnCodecs 
'Declaration
 
Public Class AnnCodecs 
public sealed class AnnCodecs 
@interface LTAnnCodecs : NSObject
public class AnnCodecs
function Leadtools.Annotations.Core.AnnCodecs()
解説

このクラスは、以前に保存されたアノテーションデータに関する情報を取得するだけでなく、XML文字列から/へアノテーションオブジェクトをロードして保存することをサポートします。

このクラスは、各々のページが完全なアノテーションContainerを格納するマルチページアノテーションデータも保存して、ロードすることをサポートします。

XMLファイルまたはデータとしてアノテーションコンテナを保存するために、AnnCodecs.SaveAnnCodecs.SaveToStringまたはSaveAsyncメソッドを使います。その後ディスクにこのXMLデータを保存するブラウザ能力を使うことができるか、サーバでそれを保存するために、ウェブサービスを利用することができます。SerializeOptionsプロパティは、保存オプションを設定して、保存されているオブジェクトをモニターするのに用いられることができます。

XMLファイルまたはデータからアノテーションコンテナをロードするために、AnnCodecs.LoadAnnCodecs.LoadFromStringまたはAnnCodecs.LoadAsyncメソッドを使います。XMLデータは、以前にブラウザ機能を使用してディスクからロードされなければならないか、ウェブサービスを使用してサーバから得られなければなりません。DeserializeOptionsプロパティは、ロードオプションを設定して、ロードされているオブジェクトをモニターして、エラーを処理するのに用いられることができます。

複数ページのXMLファイルまたはデータからすべてのアノテーションコンテナをロードするために、AnnCodecs.LoadAllLoadAllFromStringまたはAnnCodecs.LoadAllAsyncメソッドを使います。

複数ページのXMLファイルまたはデータとしてアノテーションコンテナの配列を保存するために、AnnCodecs.SaveAllSaveAllToStringまたはAnnCodecs.SaveAllAsyncメソッドを使います。

XMLデータが形式と頁数などの有効なアノテーションデータを格納するかどうか調べるために、GetInfoGetInfoFromStringまたはGetInfoAsyncを使います。

LEADTOOLSは、同じデータに複数のアノテーションを保存することをサポートします。これは、同じデータで複数ページのドキュメントのアノテーションを保存するのに用いられることができます。

個々のアノテーションレイヤを保存するために、SaveLayer(String,AnnLayer,AnnFormat,Int32)SaveLayer(Stream,AnnLayer,AnnFormat,Int32)AnnCodecs.SaveLayerToStringを使います。

サンプル

このサンプルはコンテナを作成して、それに行と長方形オブジェクトを追加します。そして、それはそれを保存して、情報を得て、後ろにそれをロードします。

Copy Code  
using Leadtools.Annotations.Automation;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;

public void AnnCodecs_AnnCodecs()
{
   // Create a new annotation container, 8.5 by 11 inches
   AnnContainer container = new AnnContainer();
   // Size must be in annotation units (1/720 of an inch)
   container.Size = LeadSizeD.Create(8.5 * 720, 11 * 720);
   double inch = 720.0;
   // Add a red line object, from 1in 1in to 2in 2in
   AnnPolylineObject lineObj = new AnnPolylineObject();
   lineObj.Points.Add(LeadPointD.Create(1 * inch, 1 * inch));
   lineObj.Points.Add(LeadPointD.Create(2 * inch, 2 * inch));
   lineObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthD.Create(1));
   container.Children.Add(lineObj);

   // Add a blue on yellow rectangle from 3in 3in to 4in 4in
   AnnRectangleObject rectObj = new AnnRectangleObject();
   rectObj.Rect = LeadRectD.Create(3 * inch, 3 * inch, 1 * inch, 1 * inch);
   rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthD.Create(1));
   rectObj.Fill = AnnSolidColorBrush.Create("Yellow");
   container.Children.Add(rectObj);

   // Show the container
   ShowContainer("Before save", container);

   // Create the codecs object to save and load annotations
   AnnCodecs codecs = new AnnCodecs();

   // Save the container

   string destFileName = @"container.xml";
   codecs.Save(destFileName, container, AnnFormat.Annotations, 1);

   // delete the container
   container = null;

   // Show information about the data we just saved
   AnnCodecsInfo info = codecs.GetInfo(destFileName);
   string message;
   if (info.Format == AnnFormat.Annotations)
   {
      message = "Version: ";
      message += info.Version;
      message += " No. of pages: ";
      message += info.Pages.Length;
      message += " page nos: ";
      for (int i = 0; i < info.Pages.Length; i++)
      {
         message += info.Pages[i] + " ";
      }
   }
   else
   {
      message = "Invalid annotations data";
   }

   Debug.WriteLine(message);

   // Load the container we just saved
   container = codecs.Load(destFileName, 1);

   // Show it
   ShowContainer("After load", container);
}

private void ShowContainer(String message, AnnContainer container)
{
   string str = message + "\nContainer size: ";

   // Add the size
   double inch = 720;
   double width = container.Size.Width / inch;
   double height = container.Size.Height / inch;
   str += width + " by " + height + " inches" + "\n";

   // Add the objects
   str += "Contains " + container.Children.Count + " objects(s)\n";
   for (int i = 0; i < container.Children.Count; i++)
   {
      AnnObject annObj = container.Children[i];

      str += "Object: " + annObj.FriendlyName + " at ";
      for (int j = 0; j < annObj.Points.Count; j++)
      {
         LeadPointD pt = annObj.Points[j];
         double x = pt.X / inch;
         double y = pt.Y / inch;
         str += "(" + x + ", " + y + ") ";
      }

      str += "\n";
   }

   Debug.WriteLine(str);
}
using Leadtools.Converters;
using Leadtools.Annotations.Automation;
using Leadtools.Controls;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;

      
public async Task AnnCodecs_AnnCodecs()
{
   // Create a new annotation container, 8.5 by 11 inches
   AnnContainer container = new AnnContainer();
   // Size must be in annotation units (1/720 of an inch)
   container.Size = LeadSizeDHelper.Create(8.5 * 720, 11 * 720);
   double inch = 720.0;
   // Add a red line object, from 1in 1in to 2in 2in
   AnnPolylineObject lineObj = new AnnPolylineObject();
   lineObj.Points.Add(LeadPointDHelper.Create(1 * inch, 1 * inch));
   lineObj.Points.Add(LeadPointDHelper.Create(2 * inch, 2 * inch));
   lineObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), LeadLengthDHelper.Create(1));
   container.Children.Add(lineObj);

   // Add a blue on yellow rectangle from 3in 3in to 4in 4in
   AnnRectangleObject rectObj = new AnnRectangleObject();
   rectObj.Rect = LeadRectDHelper.Create(3 * inch, 3 * inch, 1 * inch, 1 * inch);
   rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthDHelper.Create(1));
   rectObj.Fill = AnnSolidColorBrush.Create("Yellow");
   container.Children.Add(rectObj);

   // Show the container
   ShowContainer("Before save", container);

   // Create the codecs object to save and load annotations
   AnnCodecs codecs = new AnnCodecs();

   // Save the container

   string destFileName = @"container.xml";
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
   await codecs.SaveAsync(saveFile, container, AnnFormat.Annotations, 1);

   // delete the container
   container = null;

   // Show information about the data we just saved
   AnnCodecsInfo info = await codecs.GetInfoAsync(saveFile);
   string message;
   if (info.Format == AnnFormat.Annotations)
   {
      message = "Version: ";
      message += info.Version;
      message += " No. of pages: ";
      message += info.Pages.Length;
      message += " page nos: ";
      for (int i = 0; i < info.Pages.Length; i++)
      {
         message += info.Pages[i] + " ";
      }
   }
   else
   {
      message = "Invalid annotations data";
   }

   Debug.WriteLine(message);

   // Load the container we just saved
   container = await codecs.LoadAsync(saveFile, 1);

   // Show it
   ShowContainer("After load", container);
}

private void ShowContainer(String message, AnnContainer container)
{
   string str = message + "\nContainer size: ";

   // Add the size
   double inch = 720;
   double width = container.Size.Width / inch;
   double height = container.Size.Height / inch;
   str += width + " by " + height + " inches" + "\n";

   // Add the objects
   str += "Contains " + container.Children.Count + " objects(s)\n";
   for (int i = 0; i < container.Children.Count; i++)
   {
      AnnObject annObj = container.Children[i];

      str += "Object: " + annObj.FriendlyName + " at ";
      for (int j = 0; j < annObj.Points.Count; j++)
      {
         LeadPointD pt = annObj.Points[j];
         double x = pt.X / inch;
         double y = pt.Y / inch;
         str += "(" + x + ", " + y + ") ";
      }

      str += "\n";
   }

   Debug.WriteLine(str);
}
必要条件

ターゲットプラットホーム

参照

参照

AnnCodecsメンバ
Leadtools.Annotations.Core名前空間
アノテーションファイル

   Leadtools.Annotations.Coreは、DocumentまたはMedicalツールキットのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能