• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

prawnto(プラウント?)使ってみました。まだ課題があるのですが、現時点でのメモです。

http://cracklabs.com/prawnto
http://cracklabs.com/prawnto/demos:デモ一覧
http://github.com/thorny-sun/prawnto/tree/master
git://github.com/thorny-sun/prawnto.git

###生成したPDF
以前の記事をPDFにしてみました。
生成されたPDF:test.pdf

###pluginのインストール
prawnライブラリを使っているので、ますprawnをインストール。その後prawnto pluginインストール。
shell>>
sudo gem install prawn
./script/plugin install git://github.com/thorny-sun/prawnto.git
<<--

###(日本語表示用に)IPAフォントをダウンロード
下記からダウンロードして解凍、ttfファイルをアクセス可能なところにコピーします。
http://ossipedia.ipa.go.jp/ipafont/

配置するとしたら下記でしょうか。

  • #{RAILS_ROOT}/vendor/fonts
  • #{RAILS_ROOT}/vendor/font_ttf
  • /usr/share/fonts/
  • /usr/local/share/fonts/)

###Rails controller, view
まずはController。
page_layoutは:portrailt(縦)か:landscape(横)のどちらかです。
rails>>
#controller
respond_to do |format|
format.html { render :action => 'show' }
format.pdf {
prawnto :prawn => {
:page_layout => :portrait, # 縦
:page_size => "A4",
:left_margin => 36,
:right_margin => 24,
:top_margin => 24,
:bottom_margin => 24},
:inline => true
}
end
<<--

そしてview(show.pdf.prawnという形式のファイル)

rails>>
#show.pdf.prawn
pdf.font "#{RAILS_ROOT}/public/ipag.ttf"
pdf.text @article.title, :size => 36
pdf.text @article.body
pdf.text "This page has very wide left and right margins, causing a squeeze. " * 10
pdf.text "これはテストです。" * 20
pdf.font "Times-Roman"
pdf.text "abcdefghijklmnopqrstu"* 20, :wrap => :character
pdf.text "http://thebogles.com/blog/2007/10/how-to-add-google-adsense-for-mobile-to-your-ruby-on-rails-site/"
<<--

###現時点での課題

  • URLや日本語の文章など空白がない文字列?だと折り返されない
    => demoで紹介されている:wrap => :characterオプションが0.1.2だとなさそう?
  • レイアウト枠のpdfを重ねたりする機能はない?(発見できず)
posted by satoko satoko on Thu 4 Sep 2008 at 17:04 with 2 comments
maiha maiha 01/06 23:38
pdf-writerから移住してきました
凄くわかりやすいです、ありがとう!
satoko satoko 01/07 15:56
お役に立ててうれしいです!情報古くなっているかもですが、よろしくお願いします。