کتابخانهٔ رایگان جاوااسکریپت برای تجزیه و نوشتن فونتها
کتابخانهٔ منبع باز جاوااسکریپت که امکان تجزیه، خواندن و نوشتن فونتهای TrueType یا OpenType را فراهم میکند. از مدیریت فونت، معیارهای گلیف و چیدمان متن در برنامههای جاوااسکریپت پشتیبانی میکند.
در قلمرو وسیع طراحی و توسعه وب، تایپوگرافی نقش کلیدی در شکلدادن به تجربه کلی کاربر ایفا میکند. با این حال، کار با تایپوگرافی در وب چالشهای خاص خود را دارد. خوشبختانه، opentype.js، یک کتابخانهٔ متنباز جاوااسکریپت، به عنوان ابزاری قدرتمند ظاهر شده است که به توسعهدهندگان نرمافزار امکان دستکاری و بهرهبرداری از پتانسیل تایپوگرافی در برنامههای وب را میدهد. این کتابخانه API ساده و شهودی ارائه میدهد که برای توسعهدهندگان با هر سطح مهارتی قابل دسترس است. این ابزار به توسعهدهندگان انعطافپذیری میدهد تا تایپوگرافی را مطابق با نیازهای طراحی خاص خود سفارشی و تطبیق دهند.
Opentype.js در طیف گستردهای از مرورگرهای مدرن وب کار میکند و آن را بهعنوان یک راهحل قابل اعتماد و سازگار برای پیادهسازی ویژگیهای تایپوگرافی میسازد. چندین ویژگی مهم در این کتابخانه وجود دارد، از جمله مکانیزم تجزیه قوی فونت، تعامل با گلیفهای منفرد درون یک فونت، پشتیبانی از چیدمان متن پیچیده، رندرینگ انواع فونتها، سازگاری بین مرورگرها، استخراج دادههای دقیق فونت، پشتیبانی پیشرفته از چیدمان متن، انیمیشن گلیفهای منفرد و موارد دیگر. این کتابخانه بهصورت یکپارچه با فناوریهای وب موجود ترکیب میشود و میتواند با بوم HTML5، SVG یا حتی همراه با فریمورکهای CSS و JavaScript استفاده شود.
Opentype.js یک کتابخانه منبع باز جاوااسکریپت است که به توسعهدهندگان وب امکان کار با فونتهای OpenType، یک فرمت فونت گسترده، را میدهد. فونتهای OpenType ویژگیهای پیشرفته تایپوگرافی مانند لیگچرها، کرنینگ و جایگزینی گلیفها را ارائه میدهند که جذابیت بصری و خوانایی متن را بهطرز چشمگیری افزایش میدهند. با بهرهگیری از opentype.js، توسعهدهندگان نرمافزار میتوانند این ویژگیها را فعال کرده و به دادههای زیرین فونتهای OpenType دسترسی پیدا کنند و به این ترتیب تجربههای تایپوگرافی پویا و تعاملی را در وب ایجاد کنند. چه در تنظیم دقیق جزئیات تایپوگرافی باشد و چه در ساخت انیمیشنهای پیچیده تایپوگرافی، Opentype.js ابزاری بینظیر برای هر کسی است که به هنر تایپوگرافی در دنیای دیجیتال علاقهمند است.
شروع کار با Opentype.js
روش پیشنهادی برای نصب Opentype.js استفاده از npm است. لطفاً از فرمان زیر برای افزودن وابستگی maven در پروژه خود استفاده کنید.
نصب Opentype.js از طریق npm
npm install opentype.jsهمچنین میتوانید آن را بهصورت دستی نصب کنید؛ فایلهای آخرین نسخه را مستقیماً از مخزن GitHub دانلود کنید.
دسترسی به دادههای قلم با API جاوااسکریپت
یکی از ویژگیهای کلیدی OpenType.js توانایی آن در استخراج دادههای دقیق قلم با تنها چند خط کد جاوااسکریپت است. کتابخانه منبع باز Opentype.js عملکرد کامل برای بارگذاری و دسترسی به دادههای مرتبط با قلمها را در برنامههای جاوااسکریپت فراهم کرده است. توسعهدهندگان میتوانند به ویژگیهای مختلفی مانند نام قلم، اطلاعات طراح، شکلهای گلیف، جفتهای کرنینگ و موارد بیشتر دسترسی پیدا کنند. این اطلاعات کنترل دقیق بر تایپوگرافی را امکانپذیر میسازد و آزمایشهای خلاقانه را تسهیل میکند. مثال زیر نشان میدهد چگونه دادههای مرتبط با قلمها را با استفاده از دستورات جاوااسکریپت بارگذاری و نمایش داد.
چگونه دادههای مرتبط با قلمها را در برنامههای جاوااسکریپت نمایش دهیم؟
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);
});
باز کردن و تجزیه قلمها در برنامههای جاوااسکریپت
کتابخانه منبع باز Opentype.js به توسعهدهندگان نرمافزار امکان میدهد تا انواع مختلف قلمها را در برنامههای جاوااسکریپت خود بارگذاری و تبدیل کنند. این کتابخانه مکانیزم تجزیه قوی قلم را فراهم میکند و به توسعهدهندگان اجازه میدهد فایلهای قلم OpenType (WOFF، OTF، TTF) را در برنامههای وب خود بارگذاری کنند. پس از بارگذاری قلم، توسعهدهندگان میتوانند به ویژگیهای مختلف قلم مانند شکلهای گلیف، معیارها و متادیتا دسترسی پیدا کرده و آنها را دستکاری کنند. مثال زیر نشان میدهد چگونه انواع مختلف قلمها مانند WOFF، OTF، TTF را در برنامههای جاوااسکریپت بارگذاری کنیم.
چگونه قلمهای WOFF یا TTF را از طریق API جاوااسکریپت بارگذاری کنیم؟
// 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);
})