LEADTOOLS画像ファイルサポート(Leadtools.Codecsアセンブリ)

フレームを表示

DropImagesプロパティ








ロードの最中にSVGの画像要素をドロップすべきかどうかを示す値を取得または設定します。
構文
public bool DropImages {get; set;}
'Declaration
 
Public Property DropImages As Boolean
'Usage
 
Dim instance As CodecsLoadSvgOptions
Dim value As Boolean
 
instance.DropImages = value
 
value = instance.DropImages
public bool DropImages {get; set;}
@property (nonatomic, assign) BOOL dropImages
public boolean getDropImages()
public void setDropImages(boolean value)
            
 <br/>get_DropImages();<br/>set_DropImages(value);<br/>Object.defineProperty('DropImages'); 
public:
property bool DropImages {
   bool get();
   void set (    bool value);
}

属性値

そうでない場合、SVGの画像要素がロードの間、ドロップされるならば、true;false。デフォルト値は、falseです。
解説

テキストのみでSVGドキュメントを作成することは、特定のシナリオで目的です。たとえば、アプリケーションがテキスト値を解析して、テキストサーチ目的のために外部データベースで保存するためにSVGドキュメントをロードするならば、DropTextfalseとしてそのままにすることが必要とされないロードしている操作AND素子の速度を上げる間、trueDropImagesDropShapesの値を設定することは破棄されます。オリジナルのSVGドキュメントが多くのメモリとディスクスペースを使う画像要素を格納するならば、これは特に役に立ちます。

サンプル

このサンプルはPDF文書で見つけられるテキストを解析して、それをコンソールへ書き込みます。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.Drawing
Imports Leadtools.Svg

Public Shared Sub CodecsLoadSvgOptionsExample()
   ' The source PDF file
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf")
   ' SVG sort callback handler
   Dim sortCallback As SvgSortElementsCallback = _
      Function(document As SvgDocument, info As SvgElementInfo, userData As Object) As Boolean
         ' Is it text?
         Dim textData As SvgTextData = info.TextData
         If Not IsNothing(textData) Then
            ' Yes, print it to the console
            Console.Write(textData.Text + " ")

            ' See if its end of line
            Dim len As Integer = textData.Text.Length
            If (textData.CharacterFlags(len - 1) And SvgTextCharacterFlags.EndOfLine) = SvgTextCharacterFlags.EndOfLine Then
               Console.WriteLine()
            End If
         End If

         Return True
      End Function

   Using codecs As New RasterCodecs()
      ' Set 300 as the default value for loading document files
      codecs.Options.RasterizeDocument.Load.Resolution = 300

      ' get the number of pages
      Dim pageCount As Integer = codecs.GetTotalPages(srcFileName)

      For pageNumber As Integer = 1 To pageCount
         ' Load this page as SVG, we are interested in the text only so
         ' we will ask LEADTOOLS to skip other elements
         Dim loadSvgOptions As New CodecsLoadSvgOptions()
         loadSvgOptions.DropText = False
         loadSvgOptions.DropImages = True
         loadSvgOptions.DropShapes = True
         Using svgDocument As SvgDocument = DirectCast(codecs.LoadSvg(srcFileName, pageNumber, Nothing), SvgDocument)

            ' Sort requires a flat document, so check for that
            If Not svgDocument.IsFlat Then
               svgDocument.Flat(Nothing)
            End If

            If Not svgDocument.Bounds.IsValid Then
               svgDocument.CalculateBounds(False)
            End If

            Dim sortOptions As New SvgSortOptions()
            sortOptions.ExtractText = SvgExtractText.Word
            sortOptions.SortFlags = SvgSortFlags.Default
            Console.WriteLine("Text for page {0}", pageNumber)
            svgDocument.SortElements(sortOptions, sortCallback, Nothing)
            Console.WriteLine("-------------")
         End Using
      Next
   End Using
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.Svg;

public static void CodecsLoadSvgOptionsExample()
{
   // The source PDF file
   string srcFileName = Path.Combine(ImagesPath.Path, "Leadtools.pdf");
   // SVG sort callback handler
   SvgSortElementsCallback sortCallback = (callabackDocument, info, userData) =>
   {
      // Is it text?
      SvgTextData textData = info.TextData;
      if (textData != null)
      {
         // Yes, print it to the console
         Console.Write(textData.Text + " ");

         // See if its end of line
         var len = textData.Text.Length;
         if ((textData.CharacterFlags[len - 1] & SvgTextCharacterFlags.EndOfLine) == SvgTextCharacterFlags.EndOfLine)
            Console.WriteLine();
      }

      return true;
   };

   using (var codecs = new RasterCodecs())
   {
      // Set 300 as the default value for loading document files
      codecs.Options.RasterizeDocument.Load.Resolution = 300;

      // get the number of pages
      int pageCount = codecs.GetTotalPages(srcFileName);

      for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++)
      {
         // Load this page as SVG, we are interested in the text only so
         // we will ask LEADTOOLS to skip other elements
         CodecsLoadSvgOptions loadSvgOptions = new CodecsLoadSvgOptions();
         loadSvgOptions.DropText = false;
         loadSvgOptions.DropImages = true;
         loadSvgOptions.DropShapes = true;
         using (SvgDocument svgDocument = codecs.LoadSvg(srcFileName, pageNumber, loadSvgOptions) as SvgDocument)
         {
            // Sort requires a flat document, so check for that
            if (!svgDocument.IsFlat)
               svgDocument.Flat(null);

            if (!svgDocument.Bounds.IsValid)
               svgDocument.CalculateBounds(false);

            SvgSortOptions sortOptions = new SvgSortOptions();
            sortOptions.ExtractText = SvgExtractText.Word;
            sortOptions.SortFlags = SvgSortFlags.Default;
            Console.WriteLine("Text for page {0}", pageNumber);
            svgDocument.SortElements(sortOptions, sortCallback, null);
            Console.WriteLine("-------------");
         }
      }
   }
}
必要条件

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

参照

参照

CodecsLoadSvgOptionsクラス
CodecsLoadSvgOptionsメンバ