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`
試してみたいライブラリがあれば、詳細な使い方を案内できます!
コメント
コメントを投稿