Летающая тарелка / Jruby на рельсах генерировать PDF из вида - PullRequest
0 голосов
/ 18 июля 2011

Я пытаюсь сгенерировать 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

Я получаю ошибку

неинициализированная константа PatientsController :: FlyingSaucer

Мне требуются java и flying_saucer в контроллере

любая помощь будет оценена

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Попробуйте:

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

Попробуйте посмотреть на слайде 66 этой презентации в качестве примера.

Это также может бытьпомощь.

0 голосов
/ 19 июля 2011

Убедитесь, что банки с летающими тарелками находятся на пути к классам.

...