代码之家  ›  专栏  ›  技术社区  ›  user2340939

wicket_pdf将HTML转换为pdf而不显示HTML

  •  0
  • user2340939  · 技术社区  · 7 年前

    content = params[:html]
    

    但如果我不想显示我正在导出的PDF的HTML,该怎么办?我试过不同的方法:

    content = render_to_string(
        partial: 'some_partial.html.erb', locals: @some_var
    )
    
    respond_to do |format|
        format.pdf do
            render pdf: 'some_pdf', locals: { content: content },
                                    template: 'some_template.pdf.erb',
                                    disable_javascript: true
        end
    end
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   Kedarnag Mukanahallipatna    7 年前

    你能做的就是

    创建具有唯一名称的文件-

    unique_filename = Rails.root.join('public/', "#{SecureRandom.urlsafe_base64}.pdf").to_s

    使用render_to_string创建PDF-

    pdf_file = render_to_string :pdf => unique_filename, 
                                :template  => 'some_template.pdf.erb',
                                :save_to_file => '#{unique_filename}'
                                :save_only => true
    

    保存到文件中

    File.open(unique_filename, 'wb') do |file|
      file << pdf_file
    end