2011-02-27 12 views
8

मैं नियंत्रक प्रतिक्रिया में छवि उत्पन्न करने के लिए एक मणि या समाधान की तलाश में हूं।रेल में पीएनजी या जेपीजी का जवाब कैसे दें और HTML से छवि उत्पन्न करें?

यह अच्छा होगा अगर यह उस तरह नियंत्रक में करने के लिए संभव है:

#show.png.haml 
%h1 
    Some title 
%p 
    Some content 

परिणाम एक छवि होना चाहिए:

respond_to :html, :png 

def show 
    ... 
    respond_to do |format| 
    format.html 
    format.png { ??? } # some html to png converter 
    end 
end 

जब png प्रारूप प्रतिक्रिया अनुरोध किया जाता है टेम्पलेट के साथ संभालती है ।

मुझे pdf पीढ़ी के समाधान PDFKit, prawn और छवि उत्पादन की तलाश में है।

क्या कोई कामकाजी समाधान/उदाहरण जानता है? किसी भी शुरुआती बिंदु की बहुत सराहना की जाएगी।

उत्तर

14

चेक यहाँ से बाहर: http://weblog.rubyonrails.org/2006/12/19/using-custom-mime-types

Mime::Type.register "image/png", :png 

# then in your controller action 
def show 
    respond_to do |format| 
    format.html { } 
    format.png { } 
    end 
end 

युपीडी

क्या छवि पैदा करने के बारे में। अगर आपको अपने एचटीएमएल पेज को छवि में बदलने की ज़रूरत है। आप wkhtmltoimage
http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltoimage-0.10.0_beta2-static-amd64.tar.bz2&can=4&q=

उपयोग कर सकते हैं wkhtmltopdf के लिए pdfkit की तरह कोई मणि है, लेकिन इसका इस्तेमाल करने के लिए आसान है।

इसके अलावा आप pdfKIT मणि का उपयोग कर सकते हैं और इसके बाद पीडीएफ को पीडीजी में छविमैजिक के साथ परिवर्तित कर सकते हैं। यह भी काफी आसान है।

युपीडी

SnapShot का उपयोग करने का istead मैं प्रतिक्रिया के लिए IMGKit मणि का उपयोग करने के

https://github.com/csquared/IMGKit

+0

@floor पसंद करते हैं, धन्यवाद। मेरा बुरा, मैं अपने प्रश्न से बहुत स्पष्ट नहीं था। प्रश्न एचटीएमएल से छवि उत्पादन के बारे में अधिक था। अब मैंने इसे स्पष्ट किया। – Voldy

+0

आपको अपने एचटीएमएल को छवि में बदलने की जरूरत है? – fl00r

+2

फिर से देखें। 'Wkhtmltopdf' के लिए एक मणि है: https://github.com/siuying/websnap। और यहां एक उदाहरण है http://www.freezzo.com/2010/07/29/how-to-create-pdfs-and-images-from-your-website-in-rails/ – Voldy

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