2012-03-06 17 views
6

मेरे पास एक ऐसी वेबसाइट है जो मैं बना रहा हूं जो एक फॉर्म से डेटा (व्यक्ति का नाम) लेता है और इसे अगले पृष्ठ पर एक तालिका में एक अनुकूलित "नोट" में पोस्ट करता है। मैं चाहता हूं कि उपयोगकर्ता अपने "नोट" को छवि के रूप में उनके अनुकूलित नाम से सहेज सकें। क्या एक पीएनजी के रूप में एक विशिष्ट HTML टेबल को सहेजने का कोई तरीका है? शायद किसी वेब पेज पर एक विशिष्ट समन्वय का एक स्क्रीनशॉट लें?एचटीएमएल टेबल को एक छवि के रूप में सहेजें

यदि HTML कैनवास में फ़ॉर्म से पोस्ट की गई PHP सामग्री को प्रस्तुत करने का कोई तरीका नहीं है?

कोई भी मदद महान होगी। मैं अभी अपने सिर पर थोड़ा सा हूँ।

+2

php के छवि कार्यों में निर्मित एक नज़र डालें: http://nz.php.net/manual/en/refs.utilspec.image.php –

उत्तर

0

से समस्या का समाधान

  • उपयोग fpdf एचटीएमएल (टेबल) से पीडीएफ बनाने के लिए
  • उपयोग ImageMagick
0

आप कर सकते हैं कुछ का उपयोग कर सकते करने के लिए पीडीएफ कन्वर्ट करने के लिए Xvfb का भी उपयोग करें। यह एक लिनक्स पैकेज है। यह "एक्स-विंडो वर्चुअल फ्रेम बफर" के लिए खड़ा है (यदि आप सोच रहे थे कि पृथ्वी पर क्यों ऐसा एक गूढ़ नाम था)।

क्या होगा, एक पृष्ठ लोड करें, किसी भी जावास्क्रिप्ट को निष्पादित करें और सीएसएस से अलग स्टाइलिंग लागू करें, सभी सर्वर के फ्रेम-बफर में। फिर आप छवि को बचा सकते हैं।

एक्सवीएफबी शायद अधिकांश साझा-होस्टिंग सेवाओं पर उपलब्ध नहीं होगा, हालांकि, इससे कोई फर्क नहीं पड़ता, तो यह एक व्यवहार्य समाधान होगा।

2

जबकि आप विभिन्न प्रकार के टूल का उपयोग करके HTML प्रस्तुत कर सकते हैं, तो आप यह सुनिश्चित नहीं कर सकते कि वे टूल HTML को उसी तरह प्रस्तुत करेंगे जैसे आपका ब्राउज़र इसे प्रस्तुत करता है।

अपने अंतिम लक्ष्य करना है, तो उस पर पाठ के साथ एक छवि उत्पन्न, तो के बजाय समाधान आप काम सुझाव बनाने की कोशिश कर के उस समस्या का समाधान करते हैं।

PHP के imagettftext() फ़ंक्शन पर एक नज़र डालें। इसमें उदाहरण # 1 है जो पाठ से एक छोटी, सरल छवि बनाता है जिसे किसी भी चर में संग्रहीत किया जा सकता है ... एक फॉर्म चर सहित।

इस उदाहरण का उपयोग करके, और PHP's GD functions के कुछ अन्य जोड़कर, आप एक तालिका की सभ्य प्रतिकृति बना सकते हैं, और यह सुनिश्चित कर सकते हैं कि यह वही तरीका दिखता है जिस तरह से आप html2ps या किसी अन्य टूल को प्रस्तुत करते हैं ।

enter image description here

ध्यान दें कि आप ऊपर के लिंक पर arial.ttf निर्देशों के अनुसार प्रदान करनी होगी:

<?php 
// Set the content-type 
header('Content-Type: image/png'); 

// Create the image 
$im = imagecreatetruecolor(400, 30); 

// Create some colors 
$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 0, 0, 0); 
imagefilledrectangle($im, 0, 0, 399, 29, $white); 

// The text to draw 
$text = isset($_POST['name']) ? $_POST['name'] : "name"; 
// Replace path by your own font path 
$font = 'arial.ttf'; 

// Add some shadow to the text 
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); 

// Add the text 
imagettftext($im, 20, 0, 10, 20, $black, $font, $text); 

// Using imagepng() results in clearer text compared with imagejpeg() 
imagepng($im); 
imagedestroy($im); 
?> 

यहाँ ऊपर स्क्रिप्ट द्वारा उत्पन्न नमूना उत्पादन है।

यदि चीजें काम नहीं करती हैं, तो ऑन-स्क्रीन और अपने वेब सर्वर के त्रुटि लॉग में त्रुटियों को देखें, पहले यहां अनुसरण करने से पहले। यह संभव है कि PHP के जीडी मॉड्यूल आपके वेब सर्वर पर स्थापित नहीं है। यदि ऐसा है, तो आपको यह सुनिश्चित करने के लिए अपने सर्वर व्यवस्थापक से जांच करनी चाहिए कि आपको जो चाहिए वह आपके लिए उपलब्ध है।

+0

मुझे लगता है कि यह सर्वर-पक्ष इस कार्य के लिए एक ओवरकिल है, जो @Anber द्वारा सुझाए गए पुस्तकालय के साथ एक बहुत ही सरल तरीके से पूरा किया जा सकता है। उदाहरण http://jsfiddle.net/arthurcamara/6phhb5g9 –

+0

@ आर्थर कैमरा - मैं इस क्लाइंट-साइड को क्लीनर समाधान के लिए करता हूं, लेकिन ओपी का सवाल विशेष रूप से PHP के भीतर पीएनजी उत्पन्न करने के बारे में था। – ghoti

+0

मुझे लगता है कि उनका प्रश्न तालिका के साथ पीएनजी उत्पन्न करने के बारे में था। और "पोस्ट PHP प्रस्तुत करने का कोई तरीका नहीं है"। तो PHP एक दूसरा विकल्प था, जैसा कि यह होना चाहिए :) –

2

आप ग्राहक पक्ष पर this JS library आज़मा सकते हैं।

+0

मेरे लिए यह एक बहुत साफ समाधान भी है। सुझाए गए लाइब्रेरी (html2canvas) के साथ JSFiddle उदाहरण: https://jsfiddle.net/arthurcamara/6phhb5g9/ –

+0

यह एक उपयोगी लाइब्रेरी है। लिंक के लिए यह उत्तर [प्रदान किया गया संदर्भ] (http://stackoverflow.com/help/how-to-answer) यह भी अच्छा होगा, और प्रश्न में बताई गई आवश्यकता को संबोधित किया: "* मैं चाहता हूं कि उपयोगकर्ता तब तक अपने "नोट" को उनके अनुकूलित नाम के साथ एक छवि के रूप में सहेजने में सक्षम हो। * " – ghoti

+0

@ghoti से सहमत :) अधिक संदर्भ और एक गहरा जवाब अद्भुत होगा। छवि पर उनके अनुकूलित नाम के साथ एक नोट कैनवास के साथ भी संभव है, इसलिए इसके लिए क्लाइंट-साइड समाधान के साथ कोई समस्या नहीं आनी चाहिए। –

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