首页 > 解决方案 > 如何创建一个样式正确且使用 Haml 和 Wicked-pdf 的 pdf_from_string 创建的 pdf

问题描述

我正在尝试使用我的应用程序中的 Haml 文件制作的 QRcode 制作 pdf。我的应用程序在 ruby​​ on rails 和 uses 上ActiveStorage,并且 QRcode 是用rqrcode.

首先,我尝试制作controller's instanceand view's instance。然后我创建了一个 pdfWickedPdf.new.pdf_from_stringHaml file加载了它,view这是我之前创建的一个实例。

pdf 已创建,但其中的样式Haml file不起作用。

view它是否缺少扩展 the或其他问题所需的任何帮助程序?

这是一个Haml代码。pdf 应该与此代码一起创建。

%div.content
  %div.block.block-rounded.block-bordered.block-fx-shadow.justify-content-center
    %div.block-header
      %h3.block-title= I18n.t('word.qrcode')
    %div.block-content
      = show_qr(@remote_interview_url_with_iid)

show_qr成功返回 QRCode svg。

这是创建实例的代码,pdf;并附加到active storage.

def attach_pdf
    controller = ActionController::Base.new
    view = ActionView::Base.new(Rails.root.join('app', 'views'), {}, controller)
    view.extend(ApplicationHelper)
    pdf = WickedPdf.new.pdf_from_string(view.render(template: 'layouts/pdf.html.haml', encoding: 'UTF-8'))
    self.pdf.attach(io: StringIO.new(pdf), filename: "pdf_#{self.iid}.pdf", content_type: 'application/pdf')
  end

这是链接到 pdf 页面的代码。

= link_to interview.pdf_url do
  %button.btn.btn-outline-primary.font-w600
    = I18n.t('word.show_qrcode')

pdf_url成功返回附加的 pdf 的 url。

我想知道如何让view instance加载Haml代码正确。

标签: ruby-on-railsrubyhamlwicked-pdf

解决方案


推荐阅读