2017-01-11 4 views
0

Я использую Wicked PDF и я создаю pdf-файл на новой вкладке, нажимая на кнопку. Но я хочу напечатать pdf, нажав кнопку автоматически. Я добавляю это print_media_type и устанавливаю значение true, и я ожидаю, что параметры моего принтера начнут работать, но ничего не произойдет! Есть идеи?Как распечатать сгенерированный PDF автоматически с помощью Wicked PDF?

respond_to do |format| 
     format.html 
     format.pdf do 
      render pdf: "file_name", :template => 'officials/individual_receipt_export.html.erb', encoding: 'utf8',page_size: 'A4',:print_media_type => true 
     end 
end 

ответ

1

На самом деле, print_media_type вариант используется для стилизации вашего pdf-файла, а не для его печати.
Чтобы отправить PDF-файл непосредственно на принтер, вы можете попробовать следующее:

  1. Создать PDF и сохранить его в файл:

    # create a pdf 
    pdf = render_to_string pdf: "some_file_name", template: "templates/pdf", encoding: "UTF-8" 
    
    # then save to a file 
    save_path = Rails.root.join('pdfs','filename.pdf') 
    File.open(save_path, 'wb') do |file| 
        file << pdf 
    end 
    
  2. вызовов LPR команда для печати сохраненного файла в формате PDF

    system("lpr", "pdfs/filename.pdf") 
    
+0

Прекрасно работает в Ubuntu Спасибо. –

0

Попробуйте следующее в контроллере:

def generate_pdf 
    render pdf: 'sample_offer_letter', handlers: [:erb], formats: [:html] 
end 

И В папке Views, создать файл generate_pdf.html.erb в следующем:

<!doctype html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>PDF Title</title> 
    <%= wicked_pdf_stylesheet_link_tag "file.css" -%> 
    </head> 
    <body> 
    <div>  
    <div> 
     <%= wicked_pdf_image_tag @image %> 
     <div> 
     <h4><%= Date.today.strftime("%d %b, %Y") %></h4> 
     </div> 
    </div> 
    <div> 
     <div> 
     <h3><%= @variable_in_controller %></h3> 
     </div> 
     <br> 
     <strong><%= @content %></strong> 
    </div> 
    </div> 
    </body> 
</html> 

Зов это действие, при нажатии на кнопку , Это работает со мной. Это действие позволит вам загружать PDF-файлы на ПК, а не открывать на новой вкладке.

+0

@Mohamad Yakout thi s решение не сработало для меня. Какая разница между этими двумя формами генерации PDF? –

+0

Вы сервер WEBrick, вы запускаете с помощью 'rails s' .. и ваш сервер остановился при отправке запроса? Вы сталкиваетесь с этой проблемой? –

+0

@Mohamad Yakout Я на рельсах пять, поэтому у меня есть Puma вместо WEBrick. Мой сервер не останавливается! –

Смежные вопросы