結論
できなかった。(何か方法やライブラリがあれば教えてください。。。
経緯
- 業務の中でITF規格のバーコードの生成が必要になった
- 色々調べてみたところ
Barby
というライブラリを使うとバーコード生成が簡単にできる - 流通する国や商品の種類などによってバーコード自体の規格も違うことが分かった
残念ながらBarby
だと今回必要なITF規格のバーコードが生成できないことが分かった
代替案
- JavaScriptで実装する
バックエンドでの生成はいったん諦めてJsBarcodeというJavaScriptのライブラリを使用して実装することに決めた。
実装
npmコマンドを実行
npm install jsbarcode --save
sample.erb
<img id="barcode"/>
<%= hidden_field_tag 'barcode_number', @barcode_number ||= nil %>
<script>
barcode_number = document.getElementById("barcode_number").value;
JsBarcode("#barcode", barcode_number, {
format: "ITF",
width:40,
height:1200,
displayValue: false
});
</script>
解説
本来であればRails側で画像のURLを生成しerb
で描画したいところではあったが、
今回は上手くいかなかったので
- controllerから値だけ受け取る
-
JavaScript
で取得 -
JsBarcode
を実行する
結構簡単に実装できました。
optionでバーコードの大きさや見た目を調整することができ、formatで規格も指定することができる。
displayValue
設定することでバーコード自体の下にバーコードから読み取れる値を表示することもできる。
最後に
バーコードってややこしい。。。
Railsを用いてITF規格のバーコードを生成する方法をご存じの方がいらっしゃいましたら教えていただけますと幸いです
追記 2022/11/28
実装可能なことがわかりました、また別記事で紹介します