[前][次][番号順一覧][スレッド一覧]

rails:1334

From: 片平 裕市 <yuichi_katahira@m...>
Date: Tue, 11 Jul 2006 12:53:11 +0900
Subject: [rails:1334] Re: PDF .vs. PXDoc

片平(Yu_kata)です。

実際には採用しませんでしたが、帳票印刷の為にPDF::Writerを 
試した事
があります。
http://ruby-pdf.rubyforge.org/pdf-writer/index.html

こちらのサイトに、日本語フォントパッチがあります。
http://www2s.biglobe.ne.jp/~Nori/ruby/ja/

やりたかった事は、colspanやlowspanを使ったテーブルの 
ような、多少
複雑に見出しを作った帳票印刷だったのですが、PDF::Writerで 
は難しそ
うだったので、実際には、たけ(tk)さんが勧めていた 
PXDocを採用しまし
た。
クライアントソフトを入れなければいけませんが、当方の需要は特定の
人だけが印刷出来ればよかったので。
PDF::WriterにはSimpleTableというクラスがあるのですが、名前 
の通り
複雑な表組みを作るのは難しいようです。
ですので、もしそういった用途でお探しでしたらPDF::Writerで 
は力不足
かもしれません。

とりあえず、試した時のコードを貼っておきます。
Railsが0.13とかの時に試してます。
動かなかったらすいません。
あと、PDF::Writerとパッチを当てていないと当然動きません。
ごちゃごちゃと試したコードから抜き出してきたので、filter部 
分はいらな
かったような気も。
せっかくなので、後で確認してみます。

class PdfsController < ApplicationController
   require 'pdf/writer'
   require 'pdf/simpletable'
   before_filter :set_charset
   after_filter :encoding_to_euc

   def pdf
     generate_pdf
     redirect_to("#{@request.relative_url_root}/pdf/hello.pdf")
   end

   def create_pdf
     $KCODE="EUC"
     generate_jpdf
     redirect_to("#{@request.relative_url_root}/pdf/test.pdf")
   end

   private
   def generate_pdf
     pdf=PDF::Writer.new
     pdf.select_font "Times-Roman"
     pdf.text "Hello, Ruby.", :font_size =>72, :justification => :center

     pdf.save_as("public/pdf/hello.pdf")
   end


   private
   def generate_jpdf
     $KCODE="EUC"
     pdfd=Pdf.find_all
       data = []
       for pdf in pdfd
         data<<{ "col1" =>NKF.nkf('-e -m0', pdf.field.to_s),"col2" =>  
"1on2","col3" =>"1on3","col4"=> "1on4"}
       end
     pdf=PDF::Writer.new
     pdf.select_font ('Ryumin-Light', 'EUC-H')

     tab=PDF::SimpleTable.new
       tab.title = "Title"
       tab.column_order.push(*%w(col1 col2 col3 col4))
       tab.position=:center
       tab.orientation=:center

       tab.show_lines = :all
       tab.show_headings = true

       tab.columns["col1"] = PDF::SimpleTable::Column.new("col1") { | 
col| col.heading = "col1"}
       tab.columns["col2"] = PDF::SimpleTable::Column.new("col2") { | 
col| col.heading = "col2"}
       tab.columns["col3"] = PDF::SimpleTable::Column.new("col3") { | 
col| col.heading = "col3"}
       tab.columns["col4"] = PDF::SimpleTable::Column.new("col4") { | 
col| col.heading = "col4"}

       tab.data.replace data
       tab.render_on(pdf)

       tab2=tab
       tab2.title=nil
       tab.orientation = :center
       tab.position = :center
       tab2.render_on(pdf)
       pdf.save_as("public/pdf/test.pdf")
   end

   protected
   def set_charset
    # EUC-JP
    @headers['Content-Type'] = 'text/html; charset=EUC-JP'
   end

   def encoding_to_euc
    # NKFでEUC-JPへと変更
    @response.body = NKF.nkf('-e -m0', @response.body)
   end

end



On 2006/07/11, at 11:26, dai_u wrote:

>
> すいません。私の説明不足でした。
> PDFにこだわっているわけではなく、
> 運用をするに当たり、サーバーには印刷ソフトをインストールして
> クライアントには、ソフトをインストールしない方法を考えています。
>
> たけ(tk)さんに教えていただいた
> URLにアクセスして、PXDocの概要を読んだところ
> クライアントにソフトをインストールしなくてはいけないように
> 読み取れました。
>
> ですので、なんとかクライアントからサーバーにアクセスして
> 帳票を出力する形で調査していました。


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      1330 2006-07-10 15:28 [dai_u0412@y...      ] 参加します                              
      1331 2006-07-11 03:40 ┣[ggb03124@n...       ] PDF .vs. PXDoc                        
      1332 2006-07-11 04:26 ┃┗[dai_u0412@y...      ]                                     
      1333 2006-07-11 04:46 ┃ ┣[ggb03124@n...       ]                                   
->    1334 2006-07-11 05:53 ┃ ┗[yuichi_katahira@m...]                                   
      1338 2006-07-11 08:08 ┃  ┗[yuichi_katahira@m...]                                 
      1352 2006-07-12 09:07 ┗[yuichi_katahira@m...]                                       
      1353 2006-07-12 13:57  ┣[dai_u0412@y...      ]                                     
      1402 2006-07-25 07:56  ┗[bsdmad@g...         ]                                     
      1404 2006-07-25 10:38   ┣[yuichi_katahira@m...]                                   
      1405 2006-07-25 10:51   ┃┗[bsdmad@g...         ]                                 
      1811 2006-11-08 10:33   ┗[zn@m...             ]