0

我只想将 wkhtmltopdf 的输出发送给用户。它不应该那么难。

def it
    send_pdf "file.pdf"
end

def send_pdf(file)
  url= url_for(params) # Example: http://localhost:3000/report/it
  webkit= Rails.root.join('app', 'bin', 'wkhtmltopdf', 'current')
  cmd= "#{webkit} -q \"#{url_for(params)}\" -"

  data= IO.popen(cmd).read ############### HANGS HERE ###################

  send_data(data, type: "application/pdf", filename: file)
end

为什么会挂起以及如何解决?

4

1 回答 1

0

我认为这里的线索可能是它是一个本地开发服务器 - 所以它可能一次只能接受一个请求。

要进行测试,请尝试从其他地方获取 html:

def send_pdf(file)
  # [...]
  cmd= "#{webkit} -q http://brighterplanet.com -"
  # [...]
end

如果可行,那么您的问题的答案是开发服务器是“单线程”的。

于 2012-05-31T13:41:58.820 回答