飞碟/ jruby on Rails 从视图生成 pdf

发布于 2024-11-24 15:41:24 字数 472 浏览 2 评论 0原文

我正在尝试使用飞碟从 jruby on Rails 中的视图生成 pdf,并在控制器中使用以下代码:

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

我收到错误

未初始化的常量患者控制器::FlyingSaucer

我需要控制器中的 java 和 Flying_saucer

任何帮助将不胜感激

I am trying to generate a pdf from a view in jruby on rails using flying saucer with the following code in the controller:

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

I am getting an error

uninitialized constant PatientsController::FlyingSaucer

I am requiring java and flying_saucer in the controller

any help would be appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笔落惊风雨 2024-12-01 15:41:24

尝试一下:

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 作为示例。

可能也能有所帮助。

Try this:

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

Try looking at slide 66 of this presentation for an example.

This might also be of help.

极致的悲 2024-12-01 15:41:24

确保飞碟罐子位于类路径中。

Ensure the flying saucer jars are in the classpath.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文