LEADTOOLSバーコード(Leadtools.Barcodeアセンブリ)

フレームを表示

BarcodeWriterクラス








メンバ 
LEADTOOLSのバーコード書き込みに関するサポートのメインクラス。
オブジェクトモデル
構文
public sealed class BarcodeWriter 
'Declaration
 
Public NotInheritable Class BarcodeWriter 
'Usage
 
Dim instance As BarcodeWriter
public sealed sealed class BarcodeWriter 
@interface LTBarcodeWriter : NSObject
public class BarcodeWriter
function Leadtools.Barcode.BarcodeWriter()
public ref class BarcodeWriter sealed 
解説

BarcodeWriterクラスは、バーコードをimageへ書き込むのに用いられます。直接BarcodeWriterのインスタンスを作成することができません、代わりに、BarcodeEngineの中に作成されて、BarcodeEngine.Writerプロパティを通してアクセスされるインスタンスを使います:

[Visual Basic]


             Dim engine As New BarcodeEngine()
             Dim writer As BarcodeWriter = engine.Writer
             ' Use can use the writer now, for example, write a UPCA barcode to an image:
             Dim data As New BarcodeData(BarcodeSymbology.UPCA,"01234567890")
             data.Bounds = New LogicalRectangle(0, 0, 400, 200, LogicalUnit.Pixel)
             writer.WriteBarcode(myImage, data, Nothing)
             

[C#]


             BarcodeEngine engine = new BarcodeEngine();
             BarcodeWriter writer = engine.Writer;
             // Use can use the writer now, for example, write a UPCA barcode to an image:
             BarcodeData data = new BarcodeData(BarcodeSymbology.UPCA,"01234567890");
             data.Bounds = new LogicalRectangle(0, 0, 400, 200, LogicalUnit.Pixel);
             writer.WriteBarcode(myImage, data, null);
             

または、BarcodeEngine.Writerプロパティを通して直接BarcodeWriterを使うことができます:

[Visual Basic]


             Dim engine As New BarcodeEngine()
             // Use the instance in BarcodeEngine directly, for example, write a UPCA barcode to an image:
             Dim data As New BarcodeData(BarcodeSymbology.UPCA,"01234567890")
             data.Bounds = New LogicalRectangle(0, 0, 400, 200, LogicalUnit.Pixel)
             engine.Writer.WriteBarcode(myImage, data, Nothing)
             

[C#]


             BarcodeEngine engine = new BarcodeEngine();
             // Use the instance in BarcodeEngine directly, for example, write a UPCA barcode to an image:
             BarcodeData data = new BarcodeData(BarcodeSymbology.UPCA,"01234567890");
             data.Bounds = new LogicalRectangle(0, 0, 400, 200, LogicalUnit.Pixel);
             engine.Write.WriteBarcode(myImage, data, null);
             

バーコードの書き込み

BarcodeWriterクラスは、バーコードを書き込むのに用いられる以下のメソッドを格納します:

メソッド 説明
WriteBarcode

バーコードをimageへ書き込みます。このメソッドは、バーコード(またはその派生クラスの1つ)のためにデータを格納しているBarcodeDataオブジェクトをパラメーターとして受け取ります。このオブジェクトには、バーコード体系、生のバイトストリーム形式のバーコードデータ、出力バーコードの位置とサイズを指定する四角形が含まれます。追加の書き込みオプションも提供できます。

バーコード体系によっては、派生クラスを提供できます(BarcodeDataにキャストします)。詳細については、「BarcodeData」を参照してください。

出力画像

WriteBarcodeメソッドは、デスティネーション画像データを格納するRasterImageオブジェクトをパラメーターとして受け取ります。これは、有効なオブジェクト(nullまたはNothing以外)でなければなりません。通常、RasterImageオブジェクトを取得するには、新規に作成するか、Leadtools.Codecs.RasterCodecsクラスを使用してディスクファイルまたはストリームからロードするか、Leadtools.Twain.TwainSessionクラスを使用してスキャンデバイスから取り込むか、そのほかのLEADTOOLSでサポートされている方法を使用します。

バーコードまたはバーコードをimageへ書き込んだあと、LEADTOOLSによってサポートされるファイルフォーマットで任意のものを使用してディスクにこのimageを保存するためにLeadtools.Codecs.RasterCodecsクラスを使用することができます。

書き込み領域

BarcodeDataには、画像上の最終バーコードの位置とサイズを入力したBarcodeData.Boundsプロパティが含まれます。すべてのサイズが、バーコードを書き込むとき、使われることができるというわけではありません。Boundsの幅と高さの値に特別な意味がある場合があります。CalculateBarcodeDataBoundsメソッドを使用すると、データ、バーコード体系、および選択したオプションに基づく出力バーコードの画像上での正確な位置が返されます(この位置が確定されるわけではありません)。詳細な情報のために、バーコードの書き込み―四角形とXModule

バーコード体系

ソースBarcodeDataにはBarcodeData.Symbologyプロパティも含まれます。このプロパティは、書き込み時に使用するバーコードの種類を指定するBarcodeSymbology列挙体値に設定する必要があります。

BarcodeEngine.GetSupportedSymbologiesメソッドは、LEADTOOLSによってサポートされるすべてのバーコード体系を格納している配列を返します。これらのバーコード体系の全てが、サポートがロック解除したLEADTOOLSのレベルとバックエンドサポートアセンブリの存在に従い現在のBarcodeWriterオブジェクトによって利用できるというわけではないかもしれません(使える)。このBarcodeWriterオブジェクトで現在使用できるバーコード体系のサブセットを取得するため、いつでもGetAvailableSymbologiesを使用できます。

書き込みオプション

LEADTOOLSは、バーコードを書き込むとき、追加のオプションを使用に提供します。これらのオプションは、パラメーターを微調整する場合や、特定の種類のバーコードに固有の既知の追加情報を提供する場合に使用します。これらのオプションの抽象基本クラスはBarcodeWriteOptionsです。LEADTOOLSは、派生クラスを各々のシンボル(またはバーコード体系のグループ)に提供します。詳細については、「BarcodeWriteOptions」を参照してください。

BarcodeWriterクラスには、各バーコード体系(または共通バーコード体系のグループ)のデフォルトオプションが含まれます。これらのオプションを取得するには、対象のバーコード体系を渡してGetDefaultOptionsメソッドを呼び出します。その後で、返されたBarcodeWriteOptionsのメンバを変更できます(または適切な派生クラスにキャストしてから)。

派生BarcodeWriteOptionsクラスの1つのインスタンスを作成することもできて、WriteBarcodeで直接それを使うこともできます。

デフォルトオプションは1つの場所でBarcodeWriterオブジェクトにより用いられるオプションを簡単に変更する方法を提供します;アプリケーションでオプションオブジェクトを保持する必要はありません。

ただし、場合によっては明示的なオプションを使用しなければならないことがあります。たとえば、特定の画像への書き込みを微調整する場合や、複数のスレッドと単一のBarcodeWriterで個別のオプションを使用してバーコードを書き込む場合などです。このような場合は、明示的なオプションを使用して、これらのオプションの一部または全部をオーバーライドできます。

デフォルトオプションは、LoadOptionsSaveOptionsメソッドを用いたXMLファイルまたはストリームとしてロードまたは保存されることもできます。

バーコードの書き込みと画像リージョンに関するメモ:RasterImageにリージョンが含まれる場合、BarcodeWriterはバーコードの書き込み時にリージョンの境界に従います。つまり、リージョンの制約によって、書き込んだバーコードが完全に表示されない可能性があります。C#およびVBバーコードデモは、画像にリージョンがあるかどうかをチェックし、バーコードを書き込む前にリージョンのコピーを保存してからリージョンを削除し、書き込み操作の後にリージョンを再設定します。

リージョン場所(その上と左のposition)が書き込まれるバーコードの位置に影響を及ぼさない点にも注意します。この動作は、前バージョンからLEADTOOLS v18で変更しました。

サンプル

このサンプルは、LEADTOOLSによってサポートされる各々のシンボルのために、バーコードを作成します。それは、TIFFファイルとしてバーコードをその後保存します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Barcode
Imports Leadtools.ImageProcessing

      
Public Sub BarcodeWriter_Example()
   ' Create a directory to store the images we will create
   Dim outDir As String = Path.Combine(LEAD_VARS.ImagesDir, "MyBarcodes")
   If Directory.Exists(outDir) Then
      Directory.Delete(outDir, True)
   End If
   Directory.CreateDirectory(outDir)
   Dim resolution As Integer = 300

   ' Create a Barcode engine
   Dim engine As New BarcodeEngine()

   ' Get the Barcode writer
   Dim writer As BarcodeWriter = engine.Writer

   ' All 1D options have the UseXModule set to false by default, we need to set it to true
   ' so we can calculate the default size. We will change the default options so we can
   ' pass null to CalculateBarcodeDataBounds and WriteBarcode below

   ' For all Standard 1D
   Dim oneDWriteOptions As OneDBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeWriteOptions)
   oneDWriteOptions.UseXModule = True

   ' All GS1 Databar Stacked
   Dim gs1DatabarStackedWriteOptions As GS1DatabarStackedBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked), GS1DatabarStackedBarcodeWriteOptions)
   gs1DatabarStackedWriteOptions.UseXModule = True

   ' Patch Code
   Dim patchCodeWriteOptions As PatchCodeBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.PatchCode), PatchCodeBarcodeWriteOptions)
   patchCodeWriteOptions.UseXModule = True

   ' All PostNet/Planet
   Dim postNetPlanetWriteOptions As PostNetPlanetBarcodeWriteOptions = DirectCast(writer.GetDefaultOptions(BarcodeSymbology.PostNet), PostNetPlanetBarcodeWriteOptions)
   postNetPlanetWriteOptions.UseXModule = True

   ' We will use this object to save files
   Using codecs As New RasterCodecs()
      ' Get all the available write symbologies
      Dim symbologies() As BarcodeSymbology = writer.GetAvailableSymbologies()
      For Each symbology As BarcodeSymbology In symbologies
         Console.WriteLine("Processing {0}", symbology)

         ' Create the default data for this symbology
         Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(symbology)

         ' Calculate its size with default options
         writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, Nothing)

         ' Create an image to write the data to
         Dim pixels As LeadRect = data.Bounds.ToRectangle(resolution, resolution)
         Using image As RasterImage = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))
            ' Write the barcode with default options
            writer.WriteBarcode(image, data, Nothing)

            ' Save it
            Dim outFileName As String = Path.Combine(outDir, symbology.ToString() + ".tif")
            codecs.Save(image, outFileName, RasterImageFormat.Tif, 1)
         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.Forms;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;

      
public void BarcodeWriter_Example()
{
   // Create a directory to store the images we will create
   string outDir = Path.Combine(LEAD_VARS.ImagesDir, "MyBarcodes");
   if(Directory.Exists(outDir))
   {
      Directory.Delete(outDir, true);
   }
   Directory.CreateDirectory(outDir);
   int resolution = 300;

   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();

   // Get the Barcode writer
   BarcodeWriter writer = engine.Writer;

   // All 1D options have the UseXModule set to false by default, we need to set it to true
   // so we can calculate the default size. We will change the default options so we can
   // pass null to CalculateBarcodeDataBounds and WriteBarcode below

   // For all Standard 1D
   OneDBarcodeWriteOptions oneDWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeWriteOptions;
   oneDWriteOptions.UseXModule = true;

   // All GS1 Databar Stacked
   GS1DatabarStackedBarcodeWriteOptions gs1DatabarStackedWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked) as GS1DatabarStackedBarcodeWriteOptions;
   gs1DatabarStackedWriteOptions.UseXModule = true;

   // Patch Code
   PatchCodeBarcodeWriteOptions patchCodeWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PatchCode) as PatchCodeBarcodeWriteOptions;
   patchCodeWriteOptions.UseXModule = true;

   // All PostNet/Planet
   PostNetPlanetBarcodeWriteOptions postNetPlanetWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PostNet) as PostNetPlanetBarcodeWriteOptions;
   postNetPlanetWriteOptions.UseXModule = true;

   // We will use this object to save files
   using(RasterCodecs codecs = new RasterCodecs())
   {
      // Get all the available write symbologies
      BarcodeSymbology[] symbologies = writer.GetAvailableSymbologies();
      foreach(BarcodeSymbology symbology in symbologies)
      {
         Console.WriteLine("Processing {0}", symbology);

         // Create the default data for this symbology
         BarcodeData data = BarcodeData.CreateDefaultBarcodeData(symbology);

         // Calculate its size with default options
         writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, null);

         // Create an image to write the data to
         LeadRect pixels = data.Bounds.ToRectangle(resolution, resolution);
         using(RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)))
         {
            // Write the barcode with default options
            writer.WriteBarcode(image, data, null);

            // Save it
            string outFileName = Path.Combine(outDir, symbology + ".tif");
            codecs.Save(image, outFileName, RasterImageFormat.Tif, 1);
         }
      }
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;

      
public async Task BarcodeWriter_Example()
{
   int resolution = 300;
   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();

   // Get the Barcode writer
   BarcodeWriter writer = engine.Writer;

   // All 1D options have the UseXModule set to false by default, we need to set it to true
   // so we can calculate the default size. We will change the default options so we can
   // pass null to CalculateBarcodeDataBounds and WriteBarcode below

   // For all Standard 1D
   OneDBarcodeWriteOptions oneDWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeWriteOptions;
   oneDWriteOptions.UseXModule = true;

   // All GS1 Databar Stacked
   GS1DatabarStackedBarcodeWriteOptions gs1DatabarStackedWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked) as GS1DatabarStackedBarcodeWriteOptions;
   gs1DatabarStackedWriteOptions.UseXModule = true;

   // Patch Code
   PatchCodeBarcodeWriteOptions patchCodeWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PatchCode) as PatchCodeBarcodeWriteOptions;
   patchCodeWriteOptions.UseXModule = true;

   // All PostNet/Planet
   PostNetPlanetBarcodeWriteOptions postNetPlanetWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PostNet) as PostNetPlanetBarcodeWriteOptions;
   postNetPlanetWriteOptions.UseXModule = true;

   // We will use this object to save files
   using(RasterCodecs codecs = new RasterCodecs())
   {
      // Get all the available write symbologies
      BarcodeSymbology[] symbologies = writer.GetAvailableSymbologies();
      foreach(BarcodeSymbology symbology in symbologies)
      {
         Debug.WriteLine("Processing {0}", symbology);

         // Create the default data for this symbology
         BarcodeData data = BarcodeData.CreateDefaultBarcodeData(symbology);

         // Calculate its size with default options
         writer.CalculateBarcodeDataBounds(LeadRectHelper.Empty, resolution, resolution, data, null);

         // Create an image to write the data to
         LeadRect pixels = data.Bounds;
         using(RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColorHelper.FromKnownColor(RasterKnownColor.White)))
         {
            // Write the barcode with default options
            writer.WriteBarcode(image, data, null);

            // Save it
            string outFileName = symbology.ToString() + ".tif";
            StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(outFileName);
            await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), RasterImageFormat.Tif, 1);
         }
      }
   }
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms;
using Leadtools.Barcode;
using Leadtools.ImageProcessing;
using Leadtools.Examples;

public void BarcodeWriter_Example()
{
   int resolution = 300;
   // Create a Barcode engine
   BarcodeEngine engine = new BarcodeEngine();

   // Get the Barcode writer
   BarcodeWriter writer = engine.Writer;

   // All 1D options have the UseXModule set to false by default, we need to set it to true
   // so we can calculate the default size. We will change the default options so we can
   // pass null to CalculateBarcodeDataBounds and WriteBarcode below

   // For all Standard 1D
   OneDBarcodeWriteOptions oneDWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeWriteOptions;
   oneDWriteOptions.UseXModule = true;

   // All GS1 Databar Stacked
   GS1DatabarStackedBarcodeWriteOptions gs1DatabarStackedWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked) as GS1DatabarStackedBarcodeWriteOptions;
   gs1DatabarStackedWriteOptions.UseXModule = true;

   // Patch Code
   PatchCodeBarcodeWriteOptions patchCodeWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PatchCode) as PatchCodeBarcodeWriteOptions;
   patchCodeWriteOptions.UseXModule = true;

   // All PostNet/Planet
   PostNetPlanetBarcodeWriteOptions postNetPlanetWriteOptions = writer.GetDefaultOptions(BarcodeSymbology.PostNet) as PostNetPlanetBarcodeWriteOptions;
   postNetPlanetWriteOptions.UseXModule = true;

   // We will use this object to save files
   RasterCodecs codecs = new RasterCodecs();

   // Get all the available write symbologies
   BarcodeSymbology[] symbologies = writer.GetAvailableSymbologies();
   foreach(BarcodeSymbology symbology in symbologies)
   {
      Console.WriteLine("Processing {0}", symbology);

      // Create the default data for this symbology
      BarcodeData data = BarcodeData.CreateDefaultBarcodeData(symbology);

      // Calculate its size with default options
      writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, null);

      // Create an image to write the data to
      LeadRect pixels = data.Bounds.ToRectangle(resolution, resolution);
      using(RasterImage image = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White)))
      {
         // Write the barcode with default options
         writer.WriteBarcode(image, data, null);

         // Save it
         using (SampleImageStream outputStream = new SampleImageStream(symbology + ".tif"))
         {
            codecs.Save(image, outputStream, RasterImageFormat.Tif, 1);
         }
      }
   }
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms
Imports Leadtools.Barcode
Imports Leadtools.ImageProcessing

Public Sub BarcodeWriter_Example()
  Dim resolution As Integer = 300
  ' Create a Barcode engine
  Dim engine As BarcodeEngine = New BarcodeEngine()

  ' Get the Barcode writer
  Dim writer As BarcodeWriter = engine.Writer

  ' All 1D options have the UseXModule set to false by default, we need to set it to true
  ' so we can calculate the default size. We will change the default options so we can
  ' pass null to CalculateBarcodeDataBounds and WriteBarcode below

  ' For all Standard 1D
  Dim oneDWriteOptions As OneDBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.UPCA), OneDBarcodeWriteOptions)
  oneDWriteOptions.UseXModule = True

  ' All GS1 Databar Stacked
  Dim gs1DatabarStackedWriteOptions As GS1DatabarStackedBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.GS1DatabarStacked), GS1DatabarStackedBarcodeWriteOptions)
  gs1DatabarStackedWriteOptions.UseXModule = True

  ' Patch Code
  Dim patchCodeWriteOptions As PatchCodeBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.PatchCode), PatchCodeBarcodeWriteOptions)
  patchCodeWriteOptions.UseXModule = True

  ' All PostNet/Planet
  Dim postNetPlanetWriteOptions As PostNetPlanetBarcodeWriteOptions = TryCast(writer.GetDefaultOptions(BarcodeSymbology.PostNet), PostNetPlanetBarcodeWriteOptions)
  postNetPlanetWriteOptions.UseXModule = True

  ' We will use this object to save files
  Dim codecs As RasterCodecs = New RasterCodecs()

  ' Get all the available write symbologies
  Dim symbologies As BarcodeSymbology() = writer.GetAvailableSymbologies()
  For Each symbology As BarcodeSymbology In symbologies
    Console.WriteLine("Processing {0}", symbology)

    ' Create the default data for this symbology
    Dim data As BarcodeData = BarcodeData.CreateDefaultBarcodeData(symbology)

    ' Calculate its size with default options
    writer.CalculateBarcodeDataBounds(LogicalRectangle.Empty, resolution, resolution, data, Nothing)

    ' Create an image to write the data to
    Dim pixels As LeadRect = data.Bounds.ToRectangle(resolution, resolution)
    Using image As RasterImage = RasterImage.Create(pixels.Width, pixels.Height, 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))
       ' Write the barcode with default options
       writer.WriteBarcode(image, data, Nothing)

       ' Save it
       Using outputStream As SampleImageStream = New SampleImageStream(symbology & ".tif")
         codecs.Save(image, outputStream, RasterImageFormat.Tif, 1)
       End Using
    End Using
  Next symbology
End Sub
必要条件

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

参照

参照

BarcodeWriterメンバ
Leadtools.Barcode名前空間
BarcodeSymbology列挙体
BarcodeDataクラス
BarcodeWriter.WriteBarcode
LEADTOOLSバーコードによるプログラミング
サポートされているバーコード体系
バーコードサポートのロック解除
バーコードの書き込みチュートリアル
LEADTOOLSのUPC/EANバーコード
LEADTOOLSの2 of 5バーコード
LEADTOOLSのGS1 DataBar/RSS-14バーコード
LEADTOOLSのCODE128バーコード
LEADTOOLSのUSPSと4-状態バーコード
LEADTOOLSのMSIバーコード(パルス幅変調)
LEADTOOLSのCodabarバーコード
LEADTOOLSのその他のバーコード
LEADTOOLSのDatamatrixバーコード
LEADTOOLSのPDF417とMicroPDF417バーコード
LEADTOOLSのMicroPDF417バーコード
LEADTOOLSのQRバーコード
バーコードの書き込み―四角形とXModule

Leadtools.Barcodeは、バーコードモジュールのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能