Pythonで1次元および2次元バーコードを生成する（EAN-13、Code128、QRコードなど）

バーコードは、現代の情報交換やデータ保存のための重要なツールです。機械認識やデータ処理を容易にするために、情報をグラフィックの形で符号化し、物流、小売、医療、教育など様々な分野で広く利用されています。

この記事では、PythonでCode 128、EAN-13、QRコードなど、さまざまな一般的なバーコードをすばやく生成する方法を紹介します。
* [PythonでEAN-13コードを生成する](#pythonでean-13コードを生成する)
* [PythonでCode128を生成する](#pythonでcode128を生成する)
* [PythonでQRコードを生成する](#pythonでqrコードを生成する)

## Pythonバーコードライブラリ
この記事では、EAN、UPC、Code128、Code39、QRコード、データマトリックスなど、幅広い1Dおよび2Dバーコードの生成と認識をサポートする[**Spire.Barcode for Python**](https://www.e-iceblue.com/Introduce/barcode-for-python.html)ライブラリを使用する必要があります。さらに、このライブラリは、バーコード画像のボーダースタイル、色、マージン、その他の属性をカスタマイズするための豊富なインターフェイスを提供します。
Python Barcode Generatorライブラリは、pip経由で簡単にインストールできます：
`pip install Spire.Barcode`

## コア・クラスと使用メソッド
バーコードの作成に使用される主なクラス、プロパティ、およびメソッドは次のとおりです：

1\. **`BarcodeSettings`** クラス：[バーコード生成設定に使用](https://www.e-iceblue.com/apireference/net/Spire.Barcode/html/T_Spire_Barcode_BarcodeSettings.htm)。バーコードタイプ、データ、背景色、幅、高さ、マージン、解像度などの設定をサポートします。
2\. **`BarcodeSettings.Type`** プロパティ：バーコードタイプを設定します。
3\. **`BarcodeSettings.Data`** プロパティ：バーコードデータを設定します。
4\. **`BarcodeSettings.Data2D`** プロパティ： 2次元コードのテキストを設定します。
5\. **`BarcodeGenerator`** クラス： バーコードのレンダリングに使用します。
6\. **`BarcodeGenerator.GenerateImage()`** メソッド：バーコードイメージを生成するために使用します。

:point_down:


> *バーコードを生成する Python のサンプルコードを以下に示します*


## PythonでEAN-13コードを生成する
```python
from spire.barcode import *

def WriteAllBytes(fname: str, data):
    with open(fname, "wb") as fp:
        fp.write(data)
    fp.close()

# BarcodeSettingsオブジェクトの作成
barcodeSettings = BarcodeSettings()

# バーコードタイプをEAN13に設定する
barcodeSettings.Type = BarCodeType.EAN13

# セット・バーコード・データ
barcodeSettings.Data = "5019632805254"

# BarCodeGeneratorオブジェクトの作成
barCodeGenerator = BarCodeGenerator(barcodeSettings)

# バーコード画像の生成
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("EAN13.png", barcodeimage)
```

**生成されたバーコード画像：**

![EAN13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/4b3f7a95-7103-0b3a-fad6-614a074637c9.png)


## PythonでCode128を生成する
```python
from spire.barcode import *

def WriteAllBytes(fname: str, data):
    with open(fname, "wb") as fp:
        fp.write(data)
    fp.close()

# BarcodeSettingsオブジェクトの作成
barcodeSettings = BarcodeSettings()

# バーコードタイプをCode128に設定する
barcodeSettings.Type = BarCodeType.Code128

# セット・バーコード・データ
barcodeSettings.Data = "XD00555"

# Code128コードセットの設定
barcodeSettings.Code128SetMode = Code128SetMode.Auto

# BarCodeGeneratorオブジェクトの作成
barCodeGenerator = BarCodeGenerator(barcodeSettings)

# バーコード画像の生成
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("Code128.png", barcodeimage)
```

**生成されたバーコード画像：**
![Code128.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/f039cdcc-0327-71fa-26aa-991c6be1fbb2.png)



## PythonでQRコードを生成する
```python
from spire.barcode import *

def WriteAllBytes(fname:str,data):
    fp = open(fname,"wb")
    fp.write(data)
    fp.close()

# BarcodeSettingsオブジェクトの作成
barcodeSettings = BarcodeSettings()

# バーコードタイプをQRコードに設定
barcodeSettings.Type = BarCodeType.QRCode

# 背景色の設定
barcodeSettings.BackColor = Color.get_WhiteSmoke()

# QRコードのエンコードモードの設定
barcodeSettings.QRCodeDataMode = QRCodeDataMode.Byte

# エラー訂正レベル（ECL）の設定
barcodeSettings.QRCodeECL = QRCodeECL.M

# QRコードの下部にテキストを表示するかどうかを設定します
barcodeSettings.ShowTextOnBottom = True

# 解像度の設定
barcodeSettings.DpiX = 500
barcodeSettings.DpiY = 500

# QRコードデータの設定
barcodeSettings.Data2D = "Hello, World"

# BarCodeGeneratorオブジェクトの作成
barCodeGenerator = BarCodeGenerator(barcodeSettings)

# QRコード画像の生成
barcodeimage = barCodeGenerator.GenerateImage()
WriteAllBytes("QRCode.png", barcodeimage)
```

**生成されたバーコード画像：**
![QRCode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/50490215-0abb-9e71-96a8-d8686a6c6ed2.png)

* * *

- [x]  テスト中に問題が発生した場合は、[**フォーラム**](https://www.e-iceblue.com/forum/spire-barcode-f13.html)をご覧ください。

- [x] 生成されたバーコードの透かしは、1ヶ月のトライアルライセンスを申し込むことで削除できます：[https://www.e-iceblue.com/TemLicense.html](https://www.e-iceblue.com/TemLicense.html)