1. পণ্য
  2.   Font
  3.   Python
  4.   FontTools
 
  

ফন্ট রিডিংয়ের জন্য পাইথন লাইব্রেরি

ওপেন সোর্স পাইথন API যা সফটওয়্যার ডেভেলপার এবং ডিজাইনারদের সহজে ফন্ট ম্যানিপুলেট, এডিট এবং বিশ্লেষণ করতে সক্ষম করে।

ডিজাইন, ব্র্যান্ডিং এবং যোগাযোগে FontTools একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, এবং ফন্টগুলি ভিজ্যুয়াল নান্দনিকতার ভিত্তি গঠন করে। ডিজিটাল যুগে ফন্ট ব্যবস্থাপনা ও ম্যানিপুলেশন ক্রমবর্ধমান গুরুত্বপূর্ণ হয়ে উঠেছে। ডেভেলপার এবং ডিজাইনারদের মধ্যে জনপ্রিয়তা অর্জনকারী একটি শক্তিশালী টুল হল FontTools লাইব্রেরি। FontTools একটি বহুমুখী ওপেন সোর্স পাইথন লাইব্রেরি, যা ফন্টের সঙ্গে কাজ করার জন্য বিস্তৃত টুলসের সেট প্রদান করে এবং ফন্ট উত্সাহী, ডিজাইনার, ডেভেলপার এবং টাইপোগ্রাফারদের জন্য একটি শক্তিশালী টুল হিসেবে উদ্ভূত হয়েছে। এর বিস্তৃত ফিচার সেট, পাইথন-ভিত্তিক ইন্টারফেসের সঙ্গে মিলিয়ে, ফন্ট-সম্পর্কিত কাজ এবং প্রকল্পের জন্য এটি একটি চমৎকার পছন্দ করে তুলেছে।

FontTools একটি ওপেন-সোর্স লাইব্রেরি যা সফটওয়্যার ডেভেলপারদেরকে প্রোগ্রাম্যাটিকভাবে ফন্ট ফাইলের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে। এটি ফন্ট ম্যানিপুলেশন, এডিটিং এবং বিশ্লেষণের জন্য বিস্তৃত কার্যকারিতা প্রদান করে। এটি বিভিন্নভাবে ফন্ট ম্যানিপুলেট করা, মৌলিক গ্লিফ এডিটিং অপারেশন, উন্নত ফন্ট মার্জিং, একক গ্লিফ অপসারণ, SFNT টেবিল সমর্থন, বিভিন্ন SFNT মান সনাক্তকরণ ও বাস্তবায়ন, গ্লিফ কন্টুর পরিবর্তন, ফন্ট মেট্রিকস সমন্বয়, ফন্ট এনকোডিং পরিবর্তন, টেবিল যোগ বা অপসারণ, বিভিন্ন লেআউট সিস্টেমের মধ্যে লেআউট সংজ্ঞা রূপান্তর, নাম স্ট্রিং খুঁজে বের করা ও এডিট করা ইত্যাদি সমর্থন করে।

FontTools লাইব্রেরি সফটওয়্যার প্রোগ্রামারদেরকে ফন্ট ফাইলের বিভিন্ন দিক প্রোগ্রাম্যাটিকভাবে অ্যাক্সেস, সম্পাদনা এবং বিশ্লেষণ করার ক্ষমতা প্রদান করে। এটি বেশ কয়েকটি ফন্ট ফরম্যাট সমর্থন করে, যার মধ্যে TrueType (TTF), OpenType (OTF), AFM, কিছু পরিমাণে Type 1, এবং কিছু Mac-নির্দিষ্ট ফরম্যাট অন্তর্ভুক্ত, যা বিভিন্ন ফন্ট টাইপের সঙ্গে কাজ করার জন্য এটি একটি বহুমুখী পছন্দ করে তোলে। FontTools একটি প্রাণবন্ত এবং সহায়ক কমিউনিটি থেকে উপকৃত হয়। প্রকল্পটি ওপেন সোর্স এবং সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়, নিয়মিত আপডেট এবং বাগ ফিক্স সহ। আপনি ফন্ট ম্যানিপুলেশন স্বয়ংক্রিয় করুন, টাইপফেস সূক্ষ্ম-সামঞ্জস্য করুন, অথবা বিস্তারিত ফন্ট বিশ্লেষণ করুন, FontTools আপনার লক্ষ্য দক্ষতার সঙ্গে অর্জনের জন্য প্রয়োজনীয় টুল এবং নমনীয়তা প্রদান করে।

Previous Next

FontTools দিয়ে শুরু করা

FontTools-কে Python 3.8 বা তার পরের সংস্করণ প্রয়োজন। FontTools ইনস্টল করার সুপারিশকৃত পদ্ধতি হল PyPI ব্যবহার করা। মসৃণ ইনস্টলেশনের জন্য দয়া করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

NuGet এর মাধ্যমে FontTools ইনস্টল করুন

 pip install fonttools 

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

পাইথন API এর মাধ্যমে ফন্ট সম্পাদনা ও ম্যানিপুলেশন

ওপেন FontTools লাইব্রেরি ব্যবহার করা খুবই সহজ এবং এতে বেশ কিছু গুরুত্বপূর্ণ ফিচার অন্তর্ভুক্ত রয়েছে যা সফটওয়্যার ডেভেলপারদেরকে তাদের পাইথন অ্যাপ্লিকেশনের মধ্যে বিভিন্নভাবে ফন্ট ম্যানিপুলেট করার ক্ষমতা দেয়। এটি তাদেরকে ফন্ট ফাইল থেকে তথ্য বের করতে, গ্লিফের আউটলাইন পরিবর্তন করতে, মেট্রিক্স ম্যানিপুলেট করতে এবং এমনকি শূন্য থেকে নতুন ফন্ট তৈরি করতে, পুনরাবৃত্তি হওয়া ফন্ট-সম্পর্কিত কাজগুলো স্বয়ংক্রিয় করতে ইত্যাদি সক্ষম করে। FontTools লাইব্রেরি ব্যবহার করে সফটওয়্যার ডেভেলপাররা গ্লিফ কন্টুর পরিবর্তন, মেট্রিক্স সামঞ্জস্য, এনকোডিং পরিবর্তন এবং টেবিল যোগ বা অপসারণও করতে পারেন। এই নমনীয়তা ডিজাইনারদেরকে নির্দিষ্ট চাহিদা অনুযায়ী ফন্ট সূক্ষ্মভাবে টিউন করতে বা তাদের প্রকল্পের জন্য কাস্টমাইজড সংস্করণ তৈরি করতে সহায়তা করে।

পাইথন API ব্যবহার করে আউটলাইন পাথ কীভাবে পরিবর্তন করবেন?

path_orig = get_outline(font, "a")
startdraw(200,200)

paths = []
for i in path_orig:
    if i[0] == 'moveTo':
        path = draw.BezierPath()
        path.moveTo((i[1][0]))
    if i[0] == 'lineTo':
        path.lineTo((i[1][0]))
    if i[0] == 'qCurveTo':
        path.qCurveTo(*(i[1]))
    if i[0] == 'closePath':
        path.closePath()
        paths.append(path)

finalpath = paths[0].difference(paths[1])
finalpath.scale(0.3) #let's scale it down!
draw.fill(0.5)
draw.stroke(0)
draw.drawPath(finalpath)
show()

পাইথন API এর মাধ্যমে গ্লিফ ম্যানিপুলেশন

ওপেন সোর্স FontTools লাইব্রেরি সফটওয়্যার ডেভেলপারদের জন্য প্রোগ্রাম্যাটিকভাবে পৃথক গ্লিফগুলি ম্যানিপুলেট করা সহজ করে তোলে। এটি গ্লিফের আউটলাইন, মেট্রিক্স এবং অ্যাট্রিবিউট অ্যাক্সেস এবং পরিবর্তন করার পদ্ধতি প্রদান করে, যা ব্যবহারকারীদের তাদের নির্দিষ্ট চাহিদা অনুযায়ী ফন্ট কাস্টমাইজ করার নমনীয়তা দেয়। হোক তা কার্নিং জোড়া সমন্বয় করা, গ্লিফের আকৃতি পরিবর্তন করা, লিগেচার যোগ করা, অথবা গ্লিফের আউটলাইন তুলনা করা, FontTools গ্লিফ ম্যানিপুলেশনের প্রক্রিয়াকে সহজ করে। নিম্নলিখিত উদাহরণটি দেখায় কীভাবে দুটি গ্লিফের আউটলাইন তুলনা করা যায় এবং পাইথন কোড ব্যবহার করে ফলাফল প্রদর্শন করা যায়।

পাইথন API ব্যবহার করে দুটি গ্লিফের আউটলাইন কীভাবে তুলনা করবেন?

from fontTools.ttLib import TTFont
from fontTools.pens.recordingPen import RecordingPen

font = TTFont(filename)
cmap = font.getBestCmap()
gs = font.getGlyphSet()

g1 = gs[cmap[ord("A")]]
g2 = gs[cmap[ord("B")]]

p1 = RecordingPen()
p2 = RecordingPen()

g1.draw(p1)
g2.draw(p2)

print(p1.value == p2.value)

পাইথন API এর মাধ্যমে ফন্ট জেনারেশন এবং কনভার্সন

ওপেন সোর্স FontTools লাইব্রেরি নতুন ফন্ট ফাইল তৈরি করা বা বিদ্যমান ফাইলগুলোকে বিভিন্ন ফরম্যাটে রূপান্তর করার কার্যকারিতা প্রদান করে। এই বৈশিষ্ট্যটি বিশেষভাবে ডিজাইনার এবং ডেভেলপারদের জন্য উপকারী, যারা কাস্টম ফন্ট তৈরি করতে বা নির্দিষ্ট প্ল্যাটফর্মের জন্য ফন্ট মানিয়ে নিতে চান। FontTools ব্যবহার করে, ব্যবহারকারীরা বিভিন্ন ওজন, স্টাইল এবং ভ্যারিয়েশনসহ ফন্ট ইনস্ট্যান্স তৈরি করতে পারেন, অথবা TrueType এবং OpenType ফরম্যাটের মধ্যে ফন্টগুলোকে নির্বিঘ্নে রূপান্তর করতে পারেন। নিম্নলিখিত উদাহরণটি দেখায় কীভাবে পাইথন কমান্ড ব্যবহার করে CFF ফরম্যাটকে CFF2 ফরম্যাটে রূপান্তর করা যায়।

 বাংলা