生成许多​​PDF而无需使用wicked_pdf重新加载页面

时间:2018-02-22 16:43:36

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

我知道如何在不重新加载页面的情况下使用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

1 个答案:

答案 0 :(得分:0)

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

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