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... ]