Jumaat, Disember 14, 2007

Bagaimana Untuk Menukar Perkataan Kepada Barcode dalam Ruby On Rails dan FreeBSD

1. Pasang Aplikasi Gbarcode

i. Pastikan aplikasi Rmagick dan pekej yang bergantung kepadanya telah dipasangkan dalam sistem pengoperasian FreeBSD anda. Caranya, pasangkan aplikasi Rmagick ke dalam sistem mengguakan arahan pkg_add -v ke pautan yang bersesuaian menggunakan aplikasi terminal anda.

     contoh : pkg_add -v ftp://ftp.tw.freebs..../ruby18-rmagick-1.13.0.tbz


ii. Kemudian, pasangkan pekej ruby Rmagick pada Rails anda.

     contoh : gem install rmagick



iii. Seterusnya, pasangkan pekej ruby Gbarcode pada Rails anda.

     contoh : gem install gbarcode




2. Penggunaan Gbarocde

i. Tambahakan pautan berikut di bahagian atas controller anda.

  require "RMagick"
  require "gbarcode"


ii. Tambahkan 3 method berikut dalam controller anda

  def get_barcode_image(x)
       string_to_encode = x
       if string_to_encode.nil?
            string_to_encode = "tiada maklumat diperolehi"
       end
       eps_barcode = get_barcode_eps(string_to_encode)
       return convert_eps_to_png(eps_barcode)
  end

  def get_barcode_eps(string_to_encode)
       bc = Gbarcode.barcode_create(string_to_encode)
       bc.height= 40
       bc.margin=2
       Gbarcode.barcode_encode(bc, Gbarcode::BARCODE_128)
       read_pipe, write_pipe = IO.pipe
       Gbarcode.barcode_print(bc, write_pipe, Gbarcode::BARCODE_OUT_EPS)
       write_pipe.close()
       eps_barcode = read_pipe.read()
       read_pipe.close()
       return eps_barcode
  end

  def convert_eps_to_png(eps_image)
       im = Magick::Image::read_inline(Base64.b64encode(eps_image)).first
       im.format = "PNG"
       read_pipe, write_pipe = IO.pipe
       im.write(write_pipe)
       write_pipe.close()
       png_image= read_pipe.read()
       read_pipe.close()
       return png_image
  end



iii. Contoh penggunaan.

  def send_barcode
       data = params[:string]
       @image_data = get_barcode_image(data)
       send_data(@image_data, :type => 'image/png', :disposition => 'inline')
  end

Nota : send_barcode merupakan nama method yang anda sendiri perlukan dan
params[:string] merupakan parameter yang mengandungi perkataan yang ingin ditukar kepada barcode.


0 komen :

Hantar Pandangan

<< Halaman Utama