ruby-on-rails – PDFkit javascript问题
发布时间:2020-12-17 03:29:45 所属栏目:百科 来源:网络整理
导读:我一直在研究使用PDFKit为Rail生成pdf报告 3我正在努力的应用程序.基本上如果我使用PDFKit作为中间件 应用程序中的页面很好地呈现为pdf,包括 javascript生成的图形. 但是,我想为pdf报告使用不同的布局来删除任何 侧边栏或导航详细信息所以我没有使用中间件选
我一直在研究使用PDFKit为Rail生成pdf报告
3我正在努力的应用程序.基本上如果我使用PDFKit作为中间件 应用程序中的页面很好地呈现为pdf,包括 javascript生成的图形. 但是,我想为pdf报告使用不同的布局来删除任何 format.pdf { html = render_to_string(:action => "show.html.erb",:layout => "report.html.erb") kit = PDFKit.new(html) kit.stylesheets << "#{Rails.root}/public/stylesheets/application.css" send_data kit.to_pdf,:filename => "file.pdf",:type => :pdf} (我还尝试了将此功能提取到渲染器选项的neater选项,因为Katz描述了here,但逻辑和问题是相同的) 这肯定解决了我的布局问题,但似乎没有应用程序的javascripts正在运行,图表不再出现.我看了一下PDFKit源代码,但我发现pdf的生成方式没有任何重大差异. 我仍然用铁轨找到很多东西,所以我敢肯定这可能是非常显而易见的盯着我的东西.任何人可能拥有的任何指针都将非常感激 解决方法
这基本上是我使用的解决方案,大致基于Katz真正伟大的
blog post
ActionController.add_renderer :pdf do |template,options| html = render_to_string template,options html = translate_paths(html,env) kit = PDFKit.new(html) css_files = Array.wrap(options.delete(:css)).each do |css_sheet| kit.stylesheets << "#{Rails.root}/public/stylesheets/#{css_sheet}.css" end send_data kit.to_pdf,:filename => options[:filename],:type => Mime::PDF end translate_paths方法与PDKKit机架中间件代码中使用的方法基本相同,可以在here及以下版本中看到 def translate_paths(body,env) # Host with protocol root = "#{env['rack.url_scheme']}://#{env['HTTP_HOST']}/" body.gsub(/(href|src)=(['"])/([^"']*|[^"']*)['"]/,'1=2' + root + '32') end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |