【问题标题】:How to get docraptor to pdf using the print stylesheet in Rails?如何使用 Rails 中的打印样式表将 doraptor 转换为 pdf?
【发布时间】:2015-07-25 15:23:36
【问题描述】:

所以我有一些 Rails 3.2.x 代码,它采用 HTML 视图页面并使用 docraptor 打印服务将其输出为 PDF。唯一的问题是它不会缩小内容以适应 PDF 页面,因此存在溢出。

我最初尝试进行媒体查询以注入一些用于打印的 css,但这似乎没有任何作用。

我有哪些选择可以尝试使这项工作发挥作用?

1) 我考虑过制作一个单独的打印样式表(而不是媒体查询),但是当我通过 POST 请求将 HTML 文档发送给 docraptor 时,我不确定 docraptor 是否将其处理为“打印模式”。

2) 我还可以制作一个单独的 Rails 视图以更窄的宽度(比如 500 像素)打印出来,以确保输出时所有内容都适合 PDF 页面。这是更多的工作,所以我正在尝试做类似 #1 的工作,但我没有任何运气。

class PdfMaker
  include HTTParty
  def make_pdf
     options = {
          :document_url => url,
          :document_type => "pdf",
          :name => "mydocument.pdf",
          :test => false,
          :async => false,
          :prince_options => {:baseurl => 'http://www.example.com'}
      }

      response = post("/docs", :body => {:doc => options}, :basic_auth =>{:username => "secure_stringXXXX"})
  end
end

【问题讨论】:

    标签: css ruby-on-rails pdf princexml


    【解决方案1】:

    1) 应该可以正常工作。 DocRaptor 支持媒体查询,默认情况下使用打印样式表。唯一的问题是它(当前)不支持条件表达式,例如:

    @media print and (min-width:700px) { ... }
    

    所有条件表达式都将返回 false,因此您只想使用:

    @media print { ... }
    

    2) 这也可以,但完全没有必要。

    如果您想控制页面大小,则需要使用@page 规则。 DocRaptor 的一大优势是所有这些都可以通过纯 CSS 来设置样式,而不会弄乱代码配置。有关页面大小的详细信息,请参见此处:http://www.princexml.com/doc/page-size/

    最后,DocRaptor 支持服务可以帮助调试 HTML 到 PDF 的转换。只需转到文档日志并单击特定文档上的“请求帮助”即可。

    【讨论】:

      猜你喜欢
      • 2011-01-20
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 2013-10-25
      • 2018-02-13
      • 2017-07-09
      • 2017-12-06
      • 2011-11-20
      相关资源
      最近更新 更多