【问题标题】:How can I programmatically generate a PDF and save it on S3 using Carrierwave?如何以编程方式生成 PDF 并使用 Carrierwave 将其保存在 S3 上?
【发布时间】:2015-04-04 10:49:22
【问题描述】:

我正在尝试使用 PDFKit 生成 PDF

html = '<b>test</b>'
kit = PDFKit.new(html, :page_size => 'Letter')
pdf = kit.to_pdf

这很好用,如果我愿意,我可以将数据保存到磁盘。

我有一个简单的模型:

class Attachment < ActiveRecord::Base
  mount_uploader :file, FileUploader, mount_on: :filename
end

当我这样做时:

a = Attachment.new
a.file = pdf

我收到以下错误:

ArgumentError: string contains null byte

我不想在上传之前将 PDF 保存到磁盘,因为我将使用 Heroku。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 carrierwave pdfkit


【解决方案1】:

由于威廉的要点对我不起作用,这是我为解决问题所做的:

html = '<html><head></head><body>foo!</body></html>'
file = PDFKit.new html
file.to_pdf.gsub(/\0/, '')

这个想法来自this question的答案。可能会有副作用。

【讨论】:

  • 几个月前清理我的要点时,我删除了它,忘记了我在这里引用过它。感谢您在这里提出解决方案。
猜你喜欢
  • 1970-01-01
  • 2011-04-25
  • 2017-05-28
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 2015-06-03
  • 2011-05-05
  • 1970-01-01
相关资源
最近更新 更多