2011-09-03 49 views
15

फेलास, मैं प्रॉन पीडीएफ मणि मास्टर करने की कोशिश कर रहा हूं।रेल, प्रोन - पीडीएफ ब्राउज़र में दिखाया गया है और आदि

ठीक है, मैं मास्टर एलवीएल से बहुत दूर हूं। मैं इसे एक पीडीएफ उत्पन्न करने में सक्षम था। gemfile में हर मणि शामिल:

gem 'mysql', '~> 2.8.1' 
gem 'prawn', '~> 0.12.0' 
gem 'pdf-reader', '~> 0.10.0' 
gem 'Ascii85', '~> 1.0.1' 

config/application.rb में:

config.autoload_paths << "#{Rails.root}/app/reports" 

नियंत्रक की तुलना में:

require 'prawn' 

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    pdf.render_file "x.pdf" 
end 

से मैं सूचकांक फ़ंक्शन को कॉल करें। X.pdf नाम का एक पीडीएफ मेरे आवेदन की जड़ में बनाया गया है। रत्नफाइल, rakefile और config.ru के बीच।

प्रश्न:

  1. मैं कैसे एप्लिकेशन/रिपोर्ट में फ़ाइल (या किसी अन्य चयनित) फ़ोल्डर उत्पन्न करने के लिए झींगा मजबूर कर सकते हैं?
  2. ब्राउज़र विंडो में फ़ाइल जेनरेट करने और इसे सहेजने के लिए मैं कार्रवाई कैसे कर सकता हूं?
  3. ब्राउज़र ब्राउज़र में इसे सहेजने और दिखाने के लिए मैं इसे कैसे बना सकता हूं?

आपका, केल

उत्तर

30

मैं ऐप/रिपोर्ट (या कोई अन्य चयनित) फ़ोल्डर में फ़ाइल जेनरेट करने के लिए प्रॉन को कैसे मजबूर कर सकता हूं?

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    pdf.render_file File.join(Rails.root, "app/report", "x.pdf") 
end 

ब्राउज़र विंडो में फ़ाइल जेनरेट करने और इसे सहेजने के लिए मैं कार्रवाई कैसे कर सकता हूं?

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    send_data pdf.render, :filename => "x.pdf", :type => "application/pdf" 
end 

ब्राउज़र विंडो में इसे सहेजने और दिखाने के लिए मैं इसे कैसे बना सकता हूं?

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    filename = File.join(Rails.root, "app/report", "x.pdf") 
    pdf.render_file filename 
    send_file filename, :filename => "x.pdf", :type => "application/pdf" 
end 
+1

हाय अंदर, मेरे लिए प्रदर्शित करने के लिए अपनी नहीं है कि फ़ोल्डर में बचाने के लिए जा रहा बाध्य करेगा। लेकिन यह वहां पाया जाता है कि पीडीएफ है या नहीं? सार्वजनिक फ़ोल्डर में पीडीएफ स्टोर करने के लिए कोई समाधान? Send_data में – SSR

+3

आपको विकल्प जोड़ना चाहिए: disposition => 'inline' – sissy

0

इस प्रयास करें:

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    send_data pdf.render, :filename => "x.pdf", :type => "application/pdf" 
end 

ने कहा कि यही कारण है कि कुछ भी लेकिन एक छोटी सी पीडीएफ आप शायद नियंत्रक के बाहर इसे कहीं उत्पन्न करने के लिए चाहते हैं के लिए।

15

प्रश्न का उत्तर 3: "मैं ब्राउज़र विंडो में इसे सहेजने और दिखाने के लिए कैसे बना सकता हूं?"

def index 
    pdf = Prawn::Document.new 
    pdf.text "Hello World" 
    send_data pdf.render, filename: "x.pdf", type: "application/pdf", disposition: 'inline' 
end 

disposition: 'inline' ब्राउज़र (अगर यह कर सकते हैं) अपने पीडीएफ वर्तमान ब्राउज़र विंडो

+3

+1: disposition => 'inline' के लिए +1 – BryanH

संबंधित मुद्दे