مكتبة جافاسكريبت مجانية لتحليل وكتابة الخطوط
مكتبة جافاسكريبت مفتوحة المصدر تسمح بتحليل، قراءة وكتابة خطوط TrueType أو OpenType. تدعم معالجة الخطوط، مقاييس الحروف وتخطيط النص داخل تطبيقات جافاسكريبت.
في مملكة تصميم وتطوير الويب الواسعة، تلعب الطباعة دورًا محوريًا في تشكيل تجربة المستخدم العامة. ومع ذلك، فإن العمل مع الطباعة على الويب يواجه مجموعة من التحديات. لحسن الحظ، ظهرت مكتبة opentype.js، وهي مكتبة JavaScript مفتوحة المصدر، كأداة قوية تمكّن مطوري البرمجيات من التلاعب والاستفادة من إمكانات الطباعة في تطبيقات الويب. توفر المكتبة واجهة برمجة تطبيقات بسيطة وبديهية، مما يجعلها متاحة للمطورين من جميع مستويات المهارة. تمنح المطورين المرونة لتخصيص وتكييف الطباعة لتلبية متطلبات التصميم الخاصة بهم.
Opentype.js يعمل عبر مجموعة واسعة من متصفحات الويب الحديثة، مما يجعله حلاً موثوقًا ومتسقًا لتنفيذ ميزات الطباعة. هناك عدة ميزات مهمة في المكتبة، مثل آلية تحليل الخطوط القوية، التفاعل مع الأحرف الفردية داخل الخط، دعم تخطيط النص المعقد، عرض خطوط متعددة، التوافق عبر المتصفحات، استخراج بيانات الخط التفصيلية، دعم تخطيط النص المتقدم، تحريك الأحرف الفردية والعديد غير ذلك. يتكامل بسلاسة مع تقنيات الويب الحالية ويمكن استخدامه مع canvas في HTML5، SVG، أو حتى مع CSS وأطر JavaScript.
Opentype.js هي مكتبة جافاسكريبت مفتوحة المصدر تسمح لمطوري الويب بالعمل مع خطوط OpenType، وهو تنسيق خطوط واسع الاستخدام. توفر خطوط OpenType ميزات طباعية متقدمة، مثل الأحرف المتصلة (ligatures)، والمسافات بين الحروف (kerning)، واستبدالات الرموز (glyph substitutions)، مما يعزز بشكل كبير الجاذبية البصرية وقابلية قراءة النص. من خلال الاستفادة من opentype.js، يمكن لمطوري البرمجيات فتح هذه الميزات والوصول إلى البيانات الأساسية لخطوط OpenType، مما يمكنهم من إنشاء تجارب طباعية ديناميكية وتفاعلية على الويب. سواء كان ذلك ضبط تفاصيل الطباعة بدقة أو إنشاء رسوم متحركة طباعية معقدة، فإن OpenType.js أداة لا تقدر بثمن لأي شخص شغوف بفن الطباعة في العالم الرقمي.
البدء مع Opentype.js
الطريقة الموصى بها لتثبيت Opentype.js هي باستخدام npm. يرجى استخدام الأمر التالي لإضافة تبعية maven في مشروعك.
تثبيت Opentype.js عبر npm
npm install opentype.jsيمكنك أيضًا تثبيته يدويًا؛ قم بتحميل أحدث ملفات الإصدار مباشرةً من GitHub المستودع.
الوصول إلى بيانات الخط عبر واجهة برمجة تطبيقات JavaScript
إحدى الميزات الرئيسية في OpenType.js هي قدرتها على استخراج بيانات الخط التفصيلية باستخدام بضع أسطر فقط من كود JavaScript. لقد قدمت مكتبة Opentype.js المفتوحة المصدر وظائف كاملة لتحميل والوصول إلى البيانات المتعلقة بالخطوط داخل تطبيقات JavaScript الخاصة بهم. يمكن للمطورين الوصول إلى سمات مختلفة مثل اسم الخط، معلومات المصمم، أشكال الحروف، أزواج التتبع، وأكثر من ذلك. تمكّن هذه المعلومات من التحكم الدقيق في الطباعة وتسهيل التجارب الإبداعية. يوضح المثال التالي كيفية تحميل وعرض البيانات المتعلقة بالخطوط باستخدام أوامر JavaScript.
كيف تعرض البيانات المتعلقة بالخطوط داخل تطبيقات JavaScript؟
function displayFontData() {
document.getElementById("font-data").innerHTML = JSON.stringify(font.tables, null, 4);
var html, tablename, table, property, value;
for(tablename in font.tables) {
table = font.tables[tablename];
html = '';
for(property in table) {
value = table[property];
html += ''+property+' ';
html += value;
html += ' ';
}
document.getElementById(tablename+"-table").innerHTML = html;
}
}
function onFontLoaded(font) {
@@ -331,6 +384,13 @@ البرمجيات المجانية
fontSizeSlider.addEventListener('input', fontSizeChanged, false);
fontSizeSlider.addEventListener('change', fontSizeChanged, false);
var tableHeaders = document.getElementById('font-data').getElementsByTagName('h3');
for(var i = tableHeaders.length; i--; ) {
tableHeaders[i].addEventListener('click', function(e) {
e.target.className = (e.target.className === 'collapsed') ? 'expanded' : 'collapsed';
}, false);
}
opentype.load(fontFileName, function (err, font) {
var amount, glyph, ctx, x, y, fontSize;
if (err) {
showErrorMessage(err.toString());
return;
}
onFontLoaded(font);
});
فتح وتحليل الخطوط داخل تطبيقات JavaScript
تمكّن مكتبة Opentype.js المفتوحة المصدر مطوري البرمجيات من تحميل وتحويل أنواع مختلفة من الخطوط داخل تطبيقاتهم الخاصة بـ JavaScript. توفر المكتبة آلية قوية لتحليل الخطوط، مما يسمح للمطورين بتحميل ملفات خطوط OpenType (WOFF، OTF، TTF) إلى تطبيقاتهم الويب. بمجرد تحميل الخط، يمكن للمطورين الوصول إلى خصائص الخط المختلفة والتلاعب بها، مثل أشكال الحروف، المقاييس، والبيانات الوصفية. يوضح المثال التالي كيفية تحميل أنواع مختلفة من الخطوط مثل خطوط WOFF و OTF و TTF داخل تطبيقات JavaScript.
كيف تقوم بتحميل خطوط WOFF أو TTF عبر واجهة برمجة تطبيقات JavaScript؟
// case 1: from an URL
const buffer = fetch('/fonts/my.woff').then(res => res.arrayBuffer());
// case 2: from filesystem (node)
const buffer = require('fs').promises.readFile('./my.woff');
// case 3: from an
const buffer = document.getElementById('myfile').files[0].arrayBuffer();
// if running in async context:
const font = opentype.parse(await buffer);
console.log(font);
// if not running in async context:
buffer.then(data => {
const font = opentype.parse(data);
console.log(font);
})