2011-07-18 6 views
0

からPDFを生成する私は、コントローラに次のコードで空飛ぶ円盤を使用して、レール上のJRubyのビューからPDFを生成しようとしています:空飛ぶ円盤/ JRubyのビュー

def calendar 
    @patient = Patient.find_by_id(params[:id]) 
    result = render_to_string 
    send_data(FlyingSaucer::create_pdf(result), :filename => "calendar.pdf", 
      :type => "application/pdf", 
      :disposition => 'attachment') 
end 

私はエラーを取得しています私は、コントローラ

でJavaとflying_saucerを必要としています

初期化されていない一定のPatientsController :: FlyingSaucer

何か助けていただければ幸いです。

+0

小さなスタンドアロンスクリプトをノックして、問題を再現できるかどうかを確認してください(もしそうなら、ここに投稿してください)。 – Rob

+0

私はすべてのエラーメッセージを消去しましたが、カレンダーアクションが呼び出されたときにハングするだけです。 – user807157

+0

スタンドアロンスクリプトで再作成できますか?初期化されていない定数エラーを修正するために取った手順を説明できますか? – Rob

答えて

0

フライングソーサージャーがクラスパスにあることを確認してください。

1

これを試してみてください:

require 'flying_saucer' 
java_import org.xhtmlrenderer.pdf.ITextRenderer 

class SomeController < ApplicationController 

def show 
    respond_to do |format| 
    format.pdf { send_data render_pdf, :filename => 'test.pdf' } 
    end 
end 

private 

def render_pdf                 
    io = StringIO.new               
content = render_to_string(:layout => false) 
# content = '<html><body><h1>Yo</h1></body></html>'       
renderer = ITextRenderer.new             
renderer.set_document_from_string(content)         
renderer.layout                
renderer.create_pdf(io.to_outputstream)          
io.string                 
end                   
end 

end 

は、例えば、このpresentationのスライド66を見てみてください。

Thisもご利用いただけます。

関連する問題