まずはRubyを入れる
# yum install ruby
# ruby -v
ruby 1.8.5 (2006-08-25) [i386-linux]
バージョンは1.8.4以上でないと、Railsは動かないとの事。
gems(Rails系パッケージの管理ツール)を入れる
yumで用意されていないので、tarを落としてきます。
# wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
解凍
# tar zxvf rubygems-0.9.4.tgz
# cd rubygems-0.9.4
設定
# ruby setup.rb config
# ruby setup.rb setup
# ruby setup.rb install
gemが入ったかどうか確認
# gem environment
railsをインストール
# gem install rails --include-dependencies
railsが入ったのを確認
# rails -v
最新のRailsにアップデート
# gem update --include-dependencies
Postgresを使うので、橋渡しをインストール
# gem install postgres-pr
これで、環境は整った。
◆PDF出力させる為に◆
pdf-writer 日本語だと文字が重なる不具合有り
# gem install pdf-writer
http://www2s.biglobe.ne.jp/~Nori/ruby/ja/index.html
から日本語パッチを落として解凍。パッチを当てます。
# cd pdf-writer-1.1.3
# patch -p0 < pdf-writer-1.1.3-ja_font_patch-20060516/pdf-writer-1.1.3-ja_font_patch-20060516.diff
コントローラに
def listpdf
gen_pdf
redirect_to("#{@request.relative_url_root}/pdf/hello.pdf")
end
private
def gen_pdf
_p = PDF::Writer.new
# _p.select_font 'Ryumin-Light', 'EUC-H'
_p.select_font 'GothicBBB-Medium', 'EUC-H'
_p.text NKF.nkf('-e -m0', "テストです"), :font_size => 72, :justification => :center
_p.save_as("public/pdf/hello.pdf")
end
こんな感じでPDF出力OK。
使ってみて…。
日本語だと、文字が重なってしまう不具合があった。コードの関係で、前の文字と同じ位置に表示してしまうようである。
http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/43480?43430-43644
で、$KCODE指定で直るとあったが、ダメでした。
…なので、却下。
Rfpdf
Rfpdfを入れてみた。
ruby script/plugin install http://rfpdf.googlecode.com/svn/rfpdf
プログラムはこんな感じ
pdf = FPDF.new
pdf.extend(PDF_Japanese)
pdf.AddSJISFont();
pdf.AddPage();
pdf.SetFont('SJIS',’’,18);
icSJIS = Iconv.new('SJIS', 'UTF-8')
pdf.Write(15, icSJIS.iconv("発表します表"))
send_data pdf.Output, :filename => "public/pdf/test.pdf", :type => "application/pdf"
「表」という文字のSJISコードで不具合出るので、
lib/rfpdf/fpdf.rb内の
- txt.gsub!('¥¥', '¥¥¥¥')
を
+ txt.gsub!('¥¥', '¥¥¥¥¥¥')
(¥は半角です)
こうすると直る。
使ってみたが…。
Cellメソッドはあるが、これで表とかは難しいかな。
無料で簡単な日本語PDF出力させるならこれでOK。
PDFlib
PDFlibのHPから落としてきたRuby用のtarを解凍。
# ruby -e "puts $:"
で、他のライブラリが入ってる所と同じ場所にPDFlib.soをコピー。
# cp PDFlib.so /usr/lib/ruby/1.8/i386-linux/
日本語対応はcmapというフォントを入れます(PDFlibのHPにあります)。
これも解凍してディレクトリごとコピー。
# cp -R /home/atsumi/PDFlib-CMap-1.0/resource/cmap/ .
パスとフォントとコードを指定すれば
require 'PDFlib'
p.set_parameter("SearchPath", "/usr/lib/ruby/1.8/i386-linux/cmap")
p.set_parameter("textformat", "utf8")
font = p.load_font("HeiseiMin-W3", "UniJIS-UCS2-H", "")
で、日本語を使える様になります。
◆携帯対応◆
Mobile on Rails
ruby script/plugin install mobile_on_rails
で、インストール。
cp -R app/views app/views_mobile
で携帯用表示ディレクトリを作成し、携帯からアクセス(ユーザーエージェントで判別してます)すれば、views_mobile側の表示をします。
後はviews_mobile内をShift_JISにしたりと、携帯用ページを作っていく。
QRコード
# yum install freetype
# yum install libpng
# yum install gd-devel
# gem install ruby-gd -- --build-flag --with-freetype
下準備が整った所で、
QRコードクラスライブラリ for Rubyからソースをいただきます。
# wget http://www.venus.dti.ne.jp/~swe/program/qrcode_rb0.50beta8.tar.gz
tarで展開した物を/libに入れ、qrcode.rbの10行目。パスを合わせる。
@path="#{RAILS_ROOT}/lib/qrcode_data"
qrcode.rbの600行目付近の4箇所。
Regexpメソッドの第2・3引数に、「, false, 'n'」追加。
文字コードの問題らしいです(これをやらないとqrcode_image_outメソッドで、premature end of regular expressionというエラーが出ます)。
後は、コントローラに
class QrcodeController < ApplicationController
def index
require 'qrcode_img'
@headers['Content-Type'] = 'image/png'
x = Qrcode_image.new
x.set_module_size(3)
img = x.qrcode_image_out('http://atom.blogdns.com', 'png')
render :text => img.pngStr, :layout => false
img.destroy
end
end
↑こんな感じで表示可能
|