1. পণ্য
  2.   Font
  3.   Node.js
  4.   OpenType.js
 
  

ফন্ট পার্সিং ও রাইটিংয়ের জন্য ফ্রি জাভাস্ক্রিপ্ট লাইব্রেরি

ওপেন সোর্স জাভাস্ক্রিপ্ট লাইব্রেরি যা ট্রু টাইপ বা ওপেনটাইপ ফন্ট পার্স, রিড এবং রাইট করতে সক্ষম। এটি জেএস অ্যাপের মধ্যে ফন্ট হ্যান্ডলিং, গ্লিফ মেট্রিক্স এবং টেক্সট লেআউট সমর্থন করে।

সফটওয়্যার ওয়েব ডেভেলপমেন্ট এবং ডিজিটাল টাইপোগ্রাফি ক্ষেত্রে, ফন্ট ফাইল পরিচালনা এবং নিখুঁত টেক্সট রেন্ডারিং অভিজ্ঞতা তৈরি করা একটি চ্যালেঞ্জিং কাজ হতে পারে। তবে, OpenType ফন্টের সঙ্গে কাজ করা বিশেষত তাদের উন্নত টাইপোগ্রাফিক ফিচারগুলো অ্যাক্সেস করার সময় আরও কঠিন হতে পারে। এখানেই OpenType.js কাজ করে – একটি বিপ্লবী ওপেন-সোর্স লাইব্রেরি যা ব্রাউজারে OpenType ফন্টের সঙ্গে কাজ করা সহজ করে তোলে। OpenType.js এর প্রধান সুবিধাগুলোর একটি হল OpenType ফন্টের সঙ্গে কাজ করার প্রক্রিয়াকে সরল করা। অন্যান্য লাইব্রেরি যা ফন্ট প্রযুক্তির ব্যাপক জ্ঞান প্রয়োজন, তার তুলনায় OpenType.js একটি সরল API প্রদান করে যা শুরু করা সহজ করে।

OpenType.js হল একটি জাভাস্ক্রিপ্ট লাইব্রেরি যা OpenType ফন্টের উন্নত টাইপোগ্রাফিক বৈশিষ্ট্যগুলিতে প্রবেশের জন্য একটি সহজ এবং স্বজ্ঞাত API প্রদান করে। OpenType.js ব্যবহার করে সফটওয়্যার ডেভেলপাররা সহজেই লিগেচার, বিকল্প গ্লিফ, ভেরিয়েবল ফন্ট ইত্যাদি বৈশিষ্ট্যগুলোতে প্রবেশ করতে পারেন, যা তাদেরকে জটিল এবং পরিশীলিত টাইপোগ্রাফি ডিজাইন তৈরি করতে সক্ষম করে। বিদ্যমান ফন্ট পার্সিং এবং ম্যানিপুলেশন করার পাশাপাশি, opentype.js শূন্য থেকে নতুন ফন্ট ফাইল তৈরি করার সমর্থনও দেয়। এই বৈশিষ্ট্যটি প্রোগ্রাম্যাটিকভাবে কাস্টম ফন্ট তৈরি করতে ইচ্ছুক ডেভেলপারদের জন্য মূল্যবান। একটি জাভাস্ক্রিপ্ট লাইব্রেরি হওয়ায়, opentype.js ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড উভয় পরিবেশে ব্যবহার করা যায়, যা বিভিন্ন প্রকল্পের জন্য এটি একটি নমনীয় পছন্দ করে তোলে। সামগ্রিকভাবে, এটি একটি শক্তিশালী এবং বহুমুখী লাইব্রেরি যা ব্রাউজারে OpenType ফন্টের সঙ্গে কাজ করার জন্য একটি সহজ এবং স্বজ্ঞাত উপায় প্রদান করে।

Previous Next

Opentype.js দিয়ে শুরু করা

OpenType.js ইনস্টল করার সুপারিশকৃত পদ্ধতি হল NPM ব্যবহার করা। মসৃণ ইনস্টলেশনের জন্য দয়া করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

npm ব্যবহার করে Opentype.js ইনস্টল করুন

 npm install opentype.js

আপনি ম্যানুয়ালি ইনস্টল করতেও পারেন; সর্বশেষ রিলিজ ফাইলগুলি সরাসরি GitHub রিপোজিটরি থেকে ডাউনলোড করুন।

Node.js অ্যাপসের মধ্যে ফন্ট পার্সিং

OpenType.js এর মূল বৈশিষ্ট্যগুলোর একটি হল এটি কেবল কয়েকটি জাভাস্ক্রিপ্ট লাইনের মাধ্যমে OpenType এবং TrueType ফন্ট ফাইল পার্স করার ক্ষমতা। এটি সফটওয়্যার ডেভেলপারদেরকে ফন্টের গঠন, যার মধ্যে গ্লিফ, কার্নিং তথ্য এবং অন্যান্য গুরুত্বপূর্ণ ডেটা অন্তর্ভুক্ত, পড়া এবং বোঝার সুযোগ দেয়। নিম্নলিখিত উদাহরণে, Roboto Regular ফন্টটি একটি TTF ফাইল থেকে লোড করা হয়েছে। লাইব্রেরি ফন্টটি পার্স করে, যার ডেটা আরও ম্যানিপুলেশনের জন্য উপলব্ধ করে।

Node.js-এ TTF ফাইল থেকে ফন্ট কীভাবে লোড এবং পার্স করবেন??

const opentype = require('opentype.js');

// Load a font from a file
opentype.load('fonts/Roboto-Regular.ttf', function(err, font) {
    if (err) {
        console.error('Font could not be loaded:', err);
    } else {
        console.log('Font loaded successfully:', font);
        console.log('Number of glyphs:', font.numGlyphs);
    }
});

Node.js-এ ফন্টের গ্লিফ অ্যাক্সেস ও পরিবর্তন করা

ওপেন সোর্স Node.js লাইব্রেরি OpenType.js সফটওয়্যার ডেভেলপারদেরকে Node.js অ্যাপ্লিকেশনের মধ্যে ফন্টের পৃথক গ্লিফগুলোতে প্রবেশ এবং ম্যানিপুলেট করার সুযোগ দেয়। গ্লিফগুলো হল ফন্টের অক্ষরের ভিজ্যুয়াল উপস্থাপন। এই বৈশিষ্ট্যের মাধ্যমে আপনি গ্লিফ পাথগুলো বের করতে, সেগুলো পরিবর্তন করতে, অথবা নতুন গ্লিফ তৈরি করতে পারেন। এখানে একটি কোড স্নিপেট রয়েছে যা একটি ফন্ট লোড করে, অক্ষর "A" এর গ্লিফটি পুনরুদ্ধার করে, এবং তারপর গ্লিফটি তার মূল আকারের ১.৫ গুণ স্কেল করে। toPathData() মেথড গ্লিফের পাথকে SVG পাথ ডেটায় রূপান্তর করে, যা রেন্ডারিং বা আরও ম্যানিপুলেশনের জন্য ব্যবহার করা যায়।

Node.js অ্যাপে ফন্ট কীভাবে লোড এবং গ্লিফ পরিবর্তন করবেন?

const opentype = require('opentype.js');

// Load a font and modify a glyph
opentype.load('fonts/Roboto-Regular.ttf', function(err, font) {
    if (err) {
        console.error('Font could not be loaded:', err);
    } else {
        const glyph = font.charToGlyph('A');
        console.log('Original Glyph Path:', glyph.path.toPathData());

        // Modify the glyph path (e.g., scale it)
        glyph.path.scale(1.5);
        console.log('Scaled Glyph Path:', glyph.path.toPathData());
    }
});

Node.js লাইব্রেরি মাধ্যমে ফন্ট টেবিলের সঙ্গে কাজ করা

OpenType.js ডেভেলপারদের ফন্টের অন্তর্নিহিত টেবিলগুলিতে প্রবেশাধিকার দেয়, যা ফন্টের ডিজাইন এবং মেট্রিক্স সম্পর্কে বিশদ তথ্য সংরক্ষণ করে। এটি উন্নত ফন্ট ম্যানিপুলেশন বা বিশ্লেষণের জন্য বিশেষভাবে উপকারী হতে পারে। নিম্নলিখিত উদাহরণে কোড স্নিপেটটি কীভাবে নির্দিষ্ট ফন্ট টেবিলগুলিতে প্রবেশ করা যায় তা প্রদর্শন করে, যেমন head টেবিল (যা ফন্ট হেডার তথ্য ধারণ করে) এবং hhea টেবিল (যা হরিজন্টাল হেডার মেট্রিক্স ধারণ করে)। এই টেবিলগুলি গুরুত্বপূর্ণ বিবরণ প্রদান করে যা ফন্ট রেন্ডারিং এবং লেআউটের উপর সুনির্দিষ্ট নিয়ন্ত্রণের জন্য ব্যবহার করা যেতে পারে।

Node.js লাইব্রেরি ব্যবহার করে নির্দিষ্ট ফন্ট টেবিল এবং তার ভিতরের ফন্ট কীভাবে অ্যাক্সেস করবেন?

const opentype = require('opentype.js');

opentype.load('path/to/font.ttf', function(err, font) {
  if (err) {
    console.error('Font could not be loaded: ' + err);
  } else {
    // Access the 'head' table (font header)
    const headTable = font.tables.head;
    console.log('Units per Em: ' + headTable.unitsPerEm);

    // Access the 'hhea' table (horizontal header)
    const hheaTable = font.tables.hhea;
    console.log('Ascender: ' + hheaTable.ascender);
    console.log('Descender: ' + hheaTable.descender);
  }
});
 বাংলা