2

我正在尝试遵循本教程

当我添加.pdf到我的网址时,它什么也不做。我的控制器有:

respond_to :html, :pdf.

我的 mime 类型已被声明。

我也试过这个:

respond_to do |format|
  format.html
  format.pdf {
    html = render_to_string(:layout => false , :action => "www.google.fr")
    kit = PDFKit.new(html)
    send_data(kit.to_pdf, :filename => "candidats.pdf", :type => 'application/pdf')
    return # to avoid double render call
  }
end

但它不起作用,我没有收到错误。我的浏览器一直在等待 localhost,但没有任何反应。

那么我应该如何尝试使用 pdfkit 呢?

编辑 2:

根据我的 rails 日志,rails 成功渲染了 HTML。我在 .log 中看到了这一点,rails 不会将其发送到 webrick 或我的浏览器。我的浏览器一直在等待,等待,什么也没有发生。我这里只有小图。

编辑 3:我的 webrick 服务器似乎无法响应其他请求,一旦他开始获取.pdf我的 url 版本,有什么想法吗?

编辑 4:

我正在使用 rails 3.1、wkhtmltopdf 0.9.5(Windows 安装程序)和 pdfkit 0.5.2

4

2 回答 2

6

即使在开发模式下,我也找到了访问我的 .pdf 网址的更好方法。

# Enable threaded mode
config.threadsafe!

# Code is not reloaded between requests
#config.cache_classes = true

Config.cache_classes 是一个评论,因为我在没有评论的时候遇到了一些问题。这种方式 pdfkit 即使使用 rails 3.1 也能很好地工作。但是,您不会在请求之间重新加载代码。

这不是一个真正的问题,因为您首先处理您的 html,然后切换配置,以便检查 pdf 结果。这样您就不必担心您的生产数据库。

于 2011-09-28T09:16:05.700 回答
3

感谢另一个堆栈溢出答案,我得到了部分解决方案。

这有效:

html = '<html><body>Toto de combats</body></html>'
@pdf = PDFKit.new(html)

send_data @pdf.to_pdf, :filename => "whatever.pdf",
                  :type => "application/pdf",
                  :disposition  => "attachement"

您可以替换attachementinline,pdf 显示在您的浏览器中。

在我谈到的堆栈溢出答案中(我不记得链接),.to_pdf丢失了,但是是强制性的。否则 PDF 阅读器无法识别。

我正在尝试使用 .pdf 网址完成这项工作。

编辑3:

我的 .pdf 网址问题已解决。rails 3.1 的已知问题,但谷歌无法找到它们。

解释:解释

解决方法(尚未尝试)。解决方法

于 2011-09-26T13:07:11.657 回答