ruby-on-rails - Ruby/Rails Javascript (flot) 使用 Wickedpdf 渲染 pdf

标签 ruby-on-rails ruby pdf flot wicked-pdf

wickedpdf 是否呈现 javascript 图形?

ruby 1.8.7

rails - 2.3.8

我的代码工作正常, View 也很好 - flot 确实按照我想要的方式绘制了图形...,但是当我查看 pdf 文件时它全是空白。

有没有人遇到过类似的问题?

Controller :

 def graph
 @now=Time.now

 @graph = [0,0] / some sort of dataset /

 pdf = render_to_string :pdf => "graphs", :orientation => 'Landscape', :font_size => 11
 save_path = Rails.root.join('pdfs', @now.to_date.to_s+'_graphs.pdf')

 File.open(save_path, 'wb') do |file|

 file << pdf
 end

查看:

<script language="javascript" type="text/javascript" src="/javascripts/jquery.js"></script>
<script language="javascript" type="text/javascript" src="/javascripts/jquery.flot.js"></script>
<script language="javascript" type="text/javascript" src="/javascripts/jquery.flot.navigate.js"></script>

<%= wicked_pdf_stylesheet_link_tag "pdf" -%>
<%= wicked_pdf_javascript_src_tag "jquery" %>
<%= wicked_pdf_javascript_src_tag "jquery.flot" %>
<%= wicked_pdf_javascript_src_tag "jquery.flot.navigate" %>
<script type="text/javascript">

$(function () {

var options = {
    lines: { show: true },
    points: { show: true },
    xaxis: { mode: "time",  timeformat: "%m/%y",   minTickSize: [1, "day"], tickSize: [1, "month"]}
    };

    var graph = <%= @graph.to_json %>;
    $.plot(placeholder,graph.data,options);
    }

  <div id="placeholder" style="width:1000;height:500px"></div>  

助手:

    module WickedPdfHelper
  def wicked_pdf_stylesheet_link_tag(*sources)
    css_dir = Rails.root.join('public','stylesheets')
    sources.collect { |source|
      "<style type='text/css'>#{File.read(css_dir.join(source+'.css'))}</style>"
    }.join("\n").html_safe
  end

  def wicked_pdf_image_tag(img, options={})
    image_tag "file:///#{Rails.root.join('public', 'images', img)}", options
  end

  def wicked_pdf_javascript_src_tag(jsfile, options={})
    javascript_src_tag jsfile, options
  end

  def wicked_pdf_javascript_include_tag(*sources)
    sources.collect{ |source| wicked_pdf_javascript_src_tag(source, {}) }.join("\n").html_safe
  end

  module Assets
    def wicked_pdf_stylesheet_link_tag(*sources)
      sources.collect { |source|
        "<style type='text/css'>#{read_asset(source+".css")}</style>"
      }.join("\n").html_safe
    end

    def wicked_pdf_image_tag(img, options={})
      image_tag "file://#{asset_pathname(img).to_s}", options
    end

    def wicked_pdf_javascript_src_tag(jsfile, options={})
      javascript_include_tag jsfile, options
    end

    def wicked_pdf_javascript_include_tag(*sources)
      sources.collect { |source|
        "<script type='text/javascript'>#{read_asset(source+".js")}</script>"
      }.join("\n").html_safe
    end

    private

    def asset_pathname(source)
      if Rails.configuration.assets.compile == false
        File.join(Rails.public_path, asset_path(source))
      else
        Rails.application.assets.find_asset(source).pathname
      end
    end

    def read_asset(source)
      if Rails.configuration.assets.compile == false
        IO.read(asset_pathname(source))
      else
        Rails.application.assets.find_asset(source).to_s
      end
    end
  end
  end

最佳答案

它可能没有完整的 js 解释器。尝试渲染 jpg。 Gruff 会这样做,但它看起来不太好,尤其是对于时间图

关于ruby-on-rails - Ruby/Rails Javascript (flot) 使用 Wickedpdf 渲染 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321171/

相关文章:

html - Bootstrap nav nav-pills ruby​​ on rails,不切换

mysql - 能够在 Rails 控制台中将自己添加为好友

ruby-on-rails - rails 4 : Reload page with ajax after submitting remote form to a different controller

ruby-on-rails - ActiveRecord::Relation 的未定义方法 `update_attribute'

ruby - 带有 Fixnum 和 Symbol 的 mutator 方法

ruby - 使用 RVM 的 Hadoop Streaming 找不到 Gem

php - PDF 可下载 PHP

Ruby 实例变量作用域问题

实现 PDF 查看器的 Android 代码

java - 使用java解析Pdf文件并在word文件中写入内容