براي گنجاندن متن روي عنصر<canvas> متدهاي و ويژگي هائي در جاوااسكريپت وجود دارد، كه ميتوان اعمال متن در بوم مديريت كرد .اين متد ها ويژگي هاي جدول زير مخصوص اعمال متن در بوم ميباشند، كه در اين صفحه درمورد آنها بحث ميگردد.
متد يا ويژگي | شرح |
---|---|
direction | مقدار ويژگيdirection راتنظيم ويابرگشت ميدهد . |
fillText() | متن را روي بوم ترسيم و پرميكند. |
font | ويژگي فونت متني رابراي شئcontext تنظيم ويا برگشت ميدهد . |
measureText() | شئي رابرميگرداند كه شامل عرض متن مشحض شده است. |
strokeText() | ترسيم متن روي بوم |
textAlign | تراز را براي محتوي متني تنظيم ويا برگشت ميدهد. |
textBaseline | خط مبناي متن مورد استفاده درهنگام ترسيم را تنظيم ويا برگشت ميدهد. |
ويژگيdirection جهت ترسيم متن را مشخص ميكند .مقدار پيش فرض آن inheritاست كه ازdocument به ارث ميبرد .
مثال ـ جهت ترسيم متن از چپ براست("ltr") تنظيم ميشود .
ctx.font = "24px serif"; ctx.direction = "ltr"; ctx.fillText("W3Schools", 150, 50); ctx.direction = "rtl"; ctx.fillText("W3Schools", 150, 60);
توجه ـctx شئ دوبعدي است كه براي ترسيم روي بوم تعريف شده است .
مقدار | شرح |
---|---|
ltr | جهت ترسيم متن از چپ راست |
rtl | جهت ترسيم متن از راست بچپ |
inherit | از سند صفحه جاري بارث مي برد
جهت ترسيم مطابق ويژگيdir سند جاري |
متدfillText() متن پرشده را روي بوم ترسيم ميكند .مقدار پيش فرض ويژگي fillStyleكه مربوط به رنگ متن است #000000 ميباشد . (solid black)
مثال ـ متن"Hellow World!"و"Big smile!" روي بوم با متدfilltext() نوشته مي شود.
const c = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); ctx.font = "20px Georgia"; ctx.fillText("Hello World!", 10, 50); ctx.font = "30px Verdana"; // Create gradient const gradient = ctx.createLinearGradient(0, 0, c.width, 0); gradient.addColorStop("0", "magenta"); gradient.addColorStop("0.5", "blue"); gradient.addColorStop("1.0", "red"); // Fill with gradient ctx.fillStyle = gradient; ctx.fillText("Big smile!", 10, 90);
پارامتر | شرح |
---|---|
text | متني كه روي بوم نوشته ميشود. |
x | نقطه شروع نوشتن متن ـ مختصاتx |
y | نقطه شروع نوشتن متن ـ مختصاتy |
maxwidth | اختياريست ـ ماكزيمم عرض نوشتن برحسب پيكسل |
متد هيچ مقداري برگشت نمي دهد.
ويژگيfont فونت را براي ترسيم متن دربوم ،تنظسم يا برگشت ميدهد.
ويژگي فونت مشابه فرمت درCSS font property استفاده ميشود . مقدار پيش فرض آن 10px sans_serifاست .
مثال ـ متن را با30px در بوم مي نويسد .
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); ctx.font = "30px Arial"; ctx.fillText("Hello World", 10, 50);
توجه ـ رشته مربوط به ويژگي فونت در بالا نمونه اي از مقدار ويژگي فونت است.
رشته مقداري فونت شامل بخش هائي به ترتيب جدول زيراست.
مقدار | شرح |
---|---|
font-style |
|
font-vaiant |
|
font-weight |
|
font-size | اندازه فونت به پيكسل |
font-family | خانواده فونت |
مواردي ديگري وجود دارد، اماجدول مطابق نمونه ارائه شده است
متدmeasureText() يك شئ را برميگرداند كه شامل عرض متن مشخص شده، بر حسب پيكسل است.
نكته ـ در صورت نياز بدانستن عرض متن ، قبل از نوشتن روي بوم ، ازاين روش استفاده كنيد.
مثال ـ قبل از نوشتن روي بوم عرض متن را بررسي كنيد.
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); ctx.font = "30px Arial"; let txt = "Hello World" ctx.fillText("width:" + ctx.measureText(txt).width, 10, 50) ctx.fillText(txt, 10, 100);
متدstrokeText() متني را روي بوم ترسيم ميكند.پيش فرض stroeStyle براي پركردن متن ترسيمي، رنگ(solid black) 000000# است .
نكته ـ ويژگيfont را براي مشخص نمودن فونت وانداره فونت، و ويژگيstrokeStyle را در رنگ/ گراديان براي متن خوان استفاده نمائيد.
مثال ـ نوشتن"Hello World!" و"Big Smile!" باگراديان روي بوم با استفاده ازمتد strokeText()
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); ctx.font = "20px Georgia"; ctx.strokeText("Hello World!", 10, 50); ctx.font = "30px Verdana"; // Create gradient const gradient = ctx.createLinearGradient(0, 0, c.width, 0); gradient.addColorStop("0", "magenta"); gradient.addColorStop("0.5", "blue"); gradient.addColorStop("1.0", "red"); // Fill with gradient ctx.strokeStyle = gradient; ctx.strokeText("Big smile!", 10, 90);
پارامتر | شرح |
---|---|
text | متني كه روي بوم نوشته ميشود. |
x | نقطه شروع نوشتن متن ـ مختصاتx |
y | نقطه شروع نوشتن متن ـ مختصاتy |
maxwidth | اختياريست ـ ماكزيمم عرض نوشتن برحسب پيكسل |
ويژگيtextAlin تراز فعلي را براي محتوي متني ، باتوجه به نقطه لنگر ، تنظيم يا برگشت ميدهد .مقدار پيش فرض آنstart است .
مثال ـ يك خط قرمز در موقعيت150 ايجاد ميشود .اين خط تراز براي تمام متن است . تراز متون را در اجرا ملاحظه فرمائيد.
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); // Create a red line in position 150 ctx.strokeStyle = "red"; ctx.moveTo(150, 20); ctx.lineTo(150, 170); ctx.stroke(); ctx.font = "15px Arial"; // Show the different textAlign values ctx.textAlign = "start"; ctx.fillText("textAlign = start", 150, 60); ctx.textAlign = "end"; ctx.fillText("textAlign = end", 150, 80); ctx.textAlign = "left"; ctx.fillText("textAlign = left", 150, 100); ctx.textAlign = "center"; ctx.fillText("textAlign = center", 150, 120); ctx.textAlign = "right"; ctx.fillText("textAlign = right", 150, 140);
مقدار | شرح |
---|---|
start | شروع متن در موقعيت تراز |
end | پايان متن در موقعيت تراز |
center | وسط متن در موقعيت تراز |
left | سمت چپ متن در موقعيت تراز |
right | شمت راست متن در موقعيت تراز |
ويژگيtextBaseLine خط پايه متن مورد استفاده در هنگام ترسيم را تنظيم يا برگشت ميدهد .مقدار پيش فرض آنalphabetic است .
براي خطوط پايه پشتيباني شده توسطtextBaseline تصوير زيرا رامشاهده نمائيد .
مثال ـ خطي قرمز درy=100 كشيده ميشود .سپس كلماتي با مقادير متفاوت textBaseline در خطy=100نوشته شده است .
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); //Draw a red line at y=100 ctx.strokeStyle = "red"; ctx.moveTo(5, 100); ctx.lineTo(395, 100); ctx.stroke(); ctx.font = "20px Arial" //Place each word at y=100 with different textBaseline values ctx.textBaseline = "top"; ctx.fillText("Top", 5, 100); ctx.textBaseline = "bottom"; ctx.fillText("Bottom", 50, 100); ctx.textBaseline = "middle"; ctx.fillText("Middle", 120, 100); ctx.textBaseline = "alphabetic"; ctx.fillText("Alphabetic", 190, 100); ctx.textBaseline = "hanging"; ctx.fillText("Hanging", 290, 100);
مقدار | شرح |
---|---|
alphabetic | خط پايه نرمال الفبائي |
top | بالاي مربعem |
hanging | خط پايه آويزان |
middle | وسط مربعem |
ideographic | خط پايه ايدئوگرافيك |
bottom | پائين جعبه مرزي |