2017-01-11 19 views
0

私はウィキッド PDFを使用しています。私はボタンをクリックしながら新しいタブでpdfを生成します。しかし、私はボタンを自動的にクリックしてPDFを印刷したいと思います。をprint_media_typeに追加し、の値をに設定してください。アイデアはありますか?生成された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ファイルのスタイリングに使用されます。

  1. PDFを生成し、それをファイルに保存します:
    では、次の試みることができるプリンタに直接PD​​Fファイルを送信するに保存したPDFファイルを印刷するコマンド LPR

    # 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. コール

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

Ubuntuでうまく動作します。ありがとうございます。 –

0

あなたのコントローラで次のように試してみてください。

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

とビュー]フォルダで、以下のようにファイル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> 

コールこのアクション、 。それは私と一緒に働いている。 この操作では、PCにPDFをダウンロードできます。新しいタブでは開きません。

+0

@モハマドヤクートティ私の解決策はうまくいかなかった.PDFを生成するこれらの2つのフォーマットの違いは何ですか? –

+0

あなたはサーバーがWEBrickサーバーで、あなたは 'rails s' ..を使って実行し、要求を送信するとサーバーは停止しましたか? この問題に直面していますか? –

+0

@モハマドヤクート私はレール5にいるので、私はWEBrickの代わりにプーマを持っています。私のサーバーは止まらない! –

関連する問題