【发布时间】:2021-11-11 18:38:55
【问题描述】:
我正在创建一项服务以在客户端 pdf 文件的顶部添加水印。当我将它添加到 pdf 源时,html 文本加载正常,但图像加载不正常(显示的是一个小方块)。
这是我的一些代码:
add_online_signature_to_partner_quote_pdf_service.rb:
class AddOnlineSignatureToPartnerQuotePdfService
def initialize(quote)
@quote = quote
end
def call
pdf = CombinePDF.new
source = CombinePDF.parse(@quote.document.download, { allow_optional_content: true })
signature = CombinePDF.parse(generate_signature(@quote))
pdf << source
pdf << signature
update_quote_with_signature(@quote, pdf)
end
private
def generate_signature(quote)
project = quote.project
ac = ApplicationController.new
pdf = WickedPdf.new.pdf_from_string(
ac.render_to_string(
template: "advanced_admin/quotes/form/_partner_quote_signature.pdf.erb",
layout: "pdf.html",
locals: { quote: quote, project: project, pdf: true }
)
)
end
def update_quote_with_signature(quote, pdf)
quote.document.attach(
io: StringIO.new(pdf.to_pdf),
filename: "quote_complete.pdf",
content_type: "application/pdf"
)
end
end
_partner_quote_signature.pdf.erb:
<div>
<h1>my title</h1>
<%= wicked_pdf_image_tag "logo-blue.png" %>
<p>my paragraph</p>
</div>
我想在我的 PDF 中生成的图像通常位于我的资产管道app/assets/images/logo-blue.png
我尝试了很多我在其他主题上看到的不同语法,但似乎没有任何效果......“wkhtmltopdf-binary”gem 版本是 0.12.6.5
您知道如何使我的代码正常工作吗?非常感谢!
【问题讨论】:
标签: ruby-on-rails ruby pdf-generation wicked-pdf combine-pdf