5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RailsでITF規格のバーコードを作ろうとした話

Last updated at Posted at 2022-11-27

結論

できなかった。(何か方法やライブラリがあれば教えてください。。。

経緯

  • 業務の中で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
実装可能なことがわかりました、また別記事で紹介します

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?