【问题标题】:Generate many PDF without reload the page with wicked_pdf无需使用 wicked_pdf 重新加载页面即可生成许多 PDF
【发布时间】:2018-02-22 16:43:35
【问题描述】:

我会知道如何在不重新加载页面的情况下使用 wicked_pdf 生成许多 PDF, 我的函数不呈现 PDF 视图,而是直接作为附件下载

在我看来,用户选择一个模板并下载它,但如果我想更改模板并再次下载,我必须重新加载页面

我在视图中的表单:

<%= form_tag preview_path(@document, format: :pdf), method: :get do %>
  <%= select_tag "id", options_from_collection_for_select(@templates, "id", "code"), include_blank: true %>
  <%= submit_tag "Download" %>
<% end %> 

我如何在控制器中响应:

respond_to do |format|
          format.pdf do
            render pdf: "Labels " + @template.code,
            template: "documents/preview.pdf.erb",
            layout: 'layouts/pdf.html.erb',
            disposition: 'attachment', /* DIRECT DOWNLOAD */
            locals: {:document => @document},
            show_as_html: false,
            margin:  {   top:               @template.top_margin,                     # default 10 (mm)
              bottom:            @template.bottom_margin,
              left:              @template.left_margin,
              right:             @template.right_margin },
              paper_size: @template.paper_size
            end
          end
        end

【问题讨论】:

  • 这个模板是什么?的CSS?您有几个不同的页面来生成相同的信息吗?
  • 模板定义了 pdf @ElisBresciani 的边距

标签: ruby-on-rails ruby wicked-pdf


【解决方案1】:

看来你应该用另一种方式解决问题:

  1. 使用sidekiqdelayed_job,因为您可能会挂断服务器。
  2. AJAX call 生成pdf。
  3. 在服务器响应window.open(ajax_result.url);后打开新标签页

【讨论】:

    猜你喜欢
    • 2013-05-28
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多