python_バーコード画像_生成_ライブラリ

pythonにおいて

バーコード画像を生成するライブラリには、

どのようなものがあるのでしょうか?



Pythonでバーコード画像を生成するためのライブラリはいくつかあります。

それぞれ特徴が異なるので、用途に応じて選ぶと良いでしょう。


### 1. **python-barcode**


   - **特徴**

   

     - 1Dバーコード(JAN, EAN, Code128 など)のみ対応

     - PIL(Pillow)やSVGで画像を生成可能

     - シンプルなAPIで扱いやすい

 

   - **インストール**

   

     ```bash

     pip install python-barcode

 

     ```

   - **使用例**

   

     ```python

     import barcode

     from barcode.writer import ImageWriter


     # EAN-13形式のバーコードを生成

     ean = barcode.get( 'ean13',

'123456789012', writer=ImageWriter())

# barcode.png が保存される

     ean.save('barcode')  

 

     ```


---


### 2. **qrcode**


   - **特徴**

     - QRコード専用ライブラリ

     - さまざまなエンコーディングオプションに対応

 

   - **インストール**

   

     ```bash

     pip install qrcode[pil]

     ```

 

   - **使用例**

   

     ```python

     import qrcode


     qr = qrcode.make("https://example.com")

     qr.save("qrcode.png")

     ```


---


### 3. **treepoem**


   - **特徴**

   

     - 1D & 2Dバーコード両方に対応

 

     - PDF417, Data Matrix, QR Code などの2Dバーコード対応

 

     - `Ghostscript`のインストールが必要

 

   - **インストール**

   

     ```bash

 

     pip install treepoem

 

     ```

   - **使用例**

     ```python

     import treepoem


     img = treepoem.generate_barcode(

 

# 'code128', 'datamatrix' なども可

         barcode_type='qrcode',

 

         data='Hello, World!'

     )

     img.convert("RGB").save("barcode.png")

 

     ```


---


### 4. **reportlab**


   - **特徴**

     - PDF生成が主目的のライブラリだが、バーコード生成機能もあり

     - 1Dバーコードのみ対応(Code128, EAN13 など)

 

   - **インストール**

   

     ```bash

     pip install reportlab

     ```

 

   - **使用例**

   

     ```python

     from reportlab.graphics.barcode import code128

     from reportlab.graphics.shapes import Drawing

     from reportlab.lib.units import mm

     from reportlab.pdfgen import canvas


     c = canvas.Canvas("barcode.pdf")

     barcode = code128.Code128(

"1234567890", barHeight=20*mm, barWidth=0.5*mm)

     barcode.drawOn(c, 50, 750)

     c.save()

     ```


---


### **どれを選ぶべきか?**

| ライブラリ名 | 1D対応 | 2D対応 | 特徴 |

|-------------|------|------|-----|

| python-barcode | ✅ | ❌ | シンプルな1Dバーコード生成 |

| qrcode | ❌ | ✅ | QRコード専用 |

| treepoem | ✅ | ✅ | 多様なバーコードフォーマット対応(Ghostscript 必要) |

| reportlab | ✅ | ❌ | PDF出力に適した1Dバーコード |


用途に応じて選択してください。例えば:


- **1Dバーコード(JAN, EAN, Code128など)**

→ `python-barcode` または `reportlab`


- **QRコード**

→ `qrcode`


- **2Dバーコード(Data Matrix, PDF417など)** 

→ `treepoem`



試してみたいライブラリがあれば、詳細な使い方を案内できます!


コメント