Wicked_PDF Download Only - Rails 3.1 - PullRequest
       28

Wicked_PDF Download Only - Rails 3.1

4 голосов
/ 27 октября 2011

В настоящее время я использую Rails 3.1 и использую последнюю версию Wicked_pdf для генерации PDF.Я все правильно настроил, и PDF-файлы генерируются просто отлично.

Однако я хочу, чтобы пользователь мог нажать кнопку, чтобы СКАЧАТЬ PDF.В настоящее время при нажатии браузер отображает файл pdf и отображает его на странице.

<%= link_to "Download PDF", { :action => "show", :format => :pdf }, class: 'button nice red large radius', target: '_blank'%>

Мой контроллер.

def show
    @curric = Curric.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @curric }
      format.pdf do
        render :pdf => @curric.name + " CV",
        :margin => {:top                => 20,  
                    :bottom             => 20 }

      end
    end
  end

Я указал на файл send_file, ноабсолютно не знаю, как использовать его в этом сценарии.

Любая помощь приветствуется.

Ответы [ 4 ]

11 голосов
/ 20 ноября 2015

Декомпозиция конфигурации, которую необходимо установить как «вложение», пример:

respond_to do |format|
  format.pdf do
    render pdf: @curric.name + " CV",
           disposition: 'attachment'
  end
end
4 голосов
/ 15 декабря 2011

Я делаю это так:

  def show
    @candidate = Candidate.find params[:id]

    respond_to do |format|
      format.html
      format.pdf do
        @pdf = render_to_string :pdf => @candidate.cv_filename,
            :encoding => "UTF-8"
        send_data(@pdf, :filename => @candidate.cv_filename,  :type=>"application/pdf")
      end
    end    

  end

, и это работает для меня; -)

3 голосов
/ 27 октября 2011

Давайте попробуем:

pdf = render_to_string :pdf => @curric.name + " CV",
                       :margin => {:top     => 20,  
                                   :bottom  => 20 }
send_file pdf
0 голосов
/ 01 января 2014
//Download pdf generated from html template using wicket_pdf gem 
pdf = render_to_string :template => "simple/show" // here show is a show.pdf.erb inside view

send_data pdf
...