2011-06-29 6 views
6

मैं कैसे सही ठहराने के लिए "? नीचे दिए गए कोड में, पाठ/सही/केन्द्र गठबंधन छोड़ा जा सकता है एक एचटीएमएल 5 कैनवास के भीतर पाठ संरेखित कर सकते हैं। मैं align="justify" सेट करना होगा। कृपया सुझाव है कि यह कैसे किया जा सकता है?एचटीएमएल 5 कैनवास में संरेखण पाठ को औचित्य कैसे साबित करें?

एचटीएमएल :

<body onload="callMe()"> 
    <canvas id="MyCanvas"></canvas> 
</body> 

जे एस:

function callMe() { 
    var canvas = document.getElementById("MyCanvas"); 
    var ctx = canvas.getContext("2d"); 
    var txt = "Welcome to the new hello world example"; 
    cxt.font = "10pt Arial"; 
    cxt.textAlign = "left"; 

    /* code to text wrap*/ 
    cxt.fillText(txt, 10, 20); 
} 
+0

में शामिल करना होगा दिलचस्प प्रश्न :)। यह थोड़ी मदद करेगा हालांकि यदि आप अपने प्रश्न को थोड़ा और अधिक प्रारूपित करेंगे, विशेष रूप से कोड बिट;) – Jeroen

उत्तर

2

एचटीएमएल 5 के कैनवास बहु पाठ ड्राइंग का समर्थन नहीं करता तो वहाँ है संरेखण प्रकार के लिए कोई वास्तविक प्रभाव नहीं है।

आप लाइन फ़ीड का समर्थन करना चाहते हैं, तो आप यह अपने आप को समर्थन करने के लिए है, तो आप इसके बारे में एक पिछली चर्चा यहाँ देख सकते हैं: HTML5 Canvas - can I somehow use linefeeds in fillText()?

इस के लिए शब्द-रैप मेरी कार्यान्वयन है/लाइन फ़ीड:

function printAtWordWrap(context, text, x, y, lineHeight, fitWidth) { 
     fitWidth = fitWidth || 0; 
     lineHeight = lineHeight || 20; 

     var currentLine = 0; 

     var lines = text.split(/\r\n|\r|\n/); 
     for (var line = 0; line < lines.length; line++) { 


      if (fitWidth <= 0) { 
       context.fillText(lines[line], x, y + (lineHeight * currentLine)); 
      } else { 
       var words = lines[line].split(' '); 
       var idx = 1; 
       while (words.length > 0 && idx <= words.length) { 
        var str = words.slice(0, idx).join(' '); 
        var w = context.measureText(str).width; 
        if (w > fitWidth) { 
         if (idx == 1) { 
          idx = 2; 
         } 
         context.fillText(words.slice(0, idx - 1).join(' '), x, y + (lineHeight * currentLine)); 
         currentLine++; 
         words = words.splice(idx - 1); 
         idx = 1; 
        } 
        else 
        { idx++; } 
       } 
       if (idx > 0) 
        context.fillText(words.join(' '), x, y + (lineHeight * currentLine)); 
      } 
      currentLine++; 
     } 
    } 

संरेखण या औचित्य के लिए कोई समर्थन नहीं है, तो आपको इसे

+0

मैं नई लाइन के आधार पर एक वाक्य तोड़ सकता हूं और शेष पाठ को अगली पंक्ति (यानी मल्टीलाइन) में डाल सकता हूं, मैं इसे संरेखित कर सकता हूं पाठ का उपयोग कर केंद्र/दाएं/बाएं करने के लिए .लाइन लेकिन मैं इसे उचित ठहराने के लिए संरेखित नहीं कर सकता .. – Sangam254

+0

कोड के लिए धन्यवाद .. लेकिन मुझे पाठ को उचित ठहराने में मदद की आवश्यकता है – Sangam254

+1

यूओओ सीएनए इस औचित्य एल्गोरिदम का उपयोग करें: https: //www.rose- hulman.edu/class/csse/csse221/200910/Projects/Markov/justification.html कैनवास में लागू करने के लिए काफी आसान होना चाहिए – Variant

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