君の瞳はまるでルビー - Ruby 関連まとめサイト

バーコードを出力する方法 の編集

最終更新: 2015-03-31 (火) 21:53:11 (2274d)

執筆中です。

概要

バーコードを出力するライブラリ Barby の紹介と使い方について説明します。

Barby が対応するバーコードの種類と出力形式の種類は以下を参照してください(本家の英語ページですが一覧なのでわかるでしょう)。

以下、出力事例です。

バーコードの種類EAN-13(13 桁の数字です。)*1
出力方式PNG 出力
1234567890128(末尾の 8 はチェックデジット
バーコード123456789012

インストール

以下のコマンドを実行して gem をインストールします。

gem install barby

ついでに PNG 形式出力に必要な以下の gem もインストールしておくと良いかもしれません。

gem install chunky_png

出力方式に応じて必要となる gem は使い方によっては不要な場合もあるので自動でインストールされないようです。

PNG 出力をする際 chunky_png が必要になるという記述はドキュメントに見当たりませんが、実行時のエラーログから必要であると判断できます。他の出力方法を試していませんが、必要な gem が出た場合はその gem をインストールすることで動くのではないかと思います。

サンプル

以下は概要でサンプルを出力している CGI のコード事例です。

#!/usr/local/bin/ruby
# coding: UTF-8

require "cgi"
# ポイント1:バーコードの種類に応じたファイルを require する。
require "barby/barcode/ean_13"
# ポイント2:出力形式の種類に応じたファイルを require する。
require "barby/outputter/png_outputter"

cgi = CGI.new
code = cgi['barcode']

puts "Content-Type: image/png"
puts

begin
  # ポイント3:バーコードインスタンスを生成する。
  barcode = Barby::EAN13.new(code)
  # ポイント4:アウトプッターインスタンスを生成する。
  outputter = Barby::PngOutputter.new(barcode)
  # ポイント5:アウトプッターの属性を編集する。以下事例はバーコードの出力幅を 2 ドットにしている。デフォルトは 1 である。
  outputter.xdim = 2
  # ポイント5:出力形式に応じたメソッドでバイナリを取得する。PNG 形式の場合は to_png メソッドである。
  print outputter.to_png
rescue => e
  print open("barcode_error.png") { |file| file.read }
end

トラブルシューティング

実行時に `require': cannot load such file -- chunky_png (LoadError) が発生した場合

以下のコマンドを実行して gem をインストールします。

gem install chunky_png

コメント

本ページの内容に関して何かコメントがある方は、以下に記入してください。

コメントはありません。 コメント/barby/about

お名前: