نوری نستعلیق کے لیے درکار پروگرام

نبیل

تکنیکی معاون
بالکل۔
ٹی ٹی ایکس میں فونٹ کا آبجیکٹ بنے گا، وہاں اس پر تمام methods دستیاب ہوں گے اس قسم کے۔ ہمیں ایکس ایم یل سے کچھ نہیں لینا دینا۔
محسن، کیا ہمیں اپنے پروگرام سے بھی xml جنریٹ کرنے کی ضرورت نہیں پیش آئے گی؟
 

شاکرالقادری

لائبریرین
میرا خیال ہے کہ فونٹ کرییٹر میں ایک فائل کے گلفس کو پراپرٹیز کے ساتھ دوسری فائل میں ضم کیا جا سکتا ہے
 

arifkarim

معطل
قادری بھائی: اصل مسئلہ ان گلفس کو ضم کرنے کا نہیں بلکہ انکی پڑتال اور بعد میں انکی مزید ڈویلوپمنٹ کا ہے۔ میں نے ایشیا فانٹ‌ اسٹوڈیو کے فل ورژن کیلئے تقریبا تمام فائل شیرینگ نیٹورکس چھان مارے، مگر لگتا کچھ ایسا ہی ہے کہ پروگرام مہنگا ہونے کی وجہ سے کسی نے اسکو خریدنے کی زحمت ہی نہیں کی :(

اب ہمیں فی الحال فانٹ لیب کی پائتھوں لینگوئج اور جاوا پر انحصار کرنا پڑے گا۔ ساتھ ہی میں اڈوبی کے وولٹ‌کمپائلرز سے بھی مدد لی جاسکتی ہے۔ ہاں اگر کسی طرح ایشیا فانٹ اسٹوڈیو کی vfb فائل کو ttf میں کنورٹ کیا جاسکے تو پھر ان ہزاروں لگیچرز کو ہینڈل کرنے میں بہت آسانی ہو گی-

محسن بھائی: آپ سولنگی صاحب کو سرد خانے سے نکال پھر یہاں واپس محفل پر لانے کی بھی ساتھ ساتھ کوشش کریں۔ میری جب انسے بات ہوئی تھی تو انہوں نے بتایا تھا کہ انکے پاس پاک نوری نستعلیق کا وولٹ ورک موجود ہے اور وہ فارغ ہوتے ہی اس میں کسی کیریکٹر بیس نستعلیق فانٹ کو ڈالنے کی خواہش رکھتے ہیں۔ اگر وہ ہمارے ساتھ اس پراجیکٹ میں ہوتے تو کتنا اچھا ہوتا :rolleyes:
 

نبیل

تکنیکی معاون
عارف، اس پراجیکٹ پر کام کے لیے فی الحال یہی ٹیم کافی ہے۔ اس معاملے پر ہماری بات ہو چکی ہے۔
 

arifkarim

معطل
عارف، اس پراجیکٹ پر کام کے لیے فی الحال یہی ٹیم کافی ہے۔ اس معاملے پر ہماری بات ہو چکی ہے۔

جی بہتر، میں کسی اور حوالے سے یہ سوچ رہا تھا خیر۔۔۔۔ اگر ان 89 نورین فائلز کو ضم کرنے کیلئے پروگرام بنانے میں تاخیر ہو، تو یہ کام بہت ہی آسانی کیساتھ فانٹ کریٹر میں بھی کیا جاسکتا ہے۔ یہ گلفس کی تمام پراپرٹیز کو کاپی پیسٹ کر سکتا ہے!
 

محسن حجازی

محفلین
نہیں نبیل بھائی اس کی ضرورت نہیں۔
دیکھیں، آپ ایک فونٹ آبجیکٹ۔۔۔
بلکہ میں انگریزی میں بتاتا ہوں۔۔۔ :(

Basically we will have font object provided by the ttx library, we can manipulate its tables, an inspect the ordering of glyphs, even reorder, them, an d when we execute save method back on the object after we've made modifications to the heart's content, it would be a pure ttf having all the modifications that we might have wished through any font editor. I am today in office to reply you and going to Wateen office directly in order to remedy this communication gap. For an example, I''ll post my programs as sample to build on.
 

نبیل

تکنیکی معاون
شکریہ محسن، میں اس سلسلے میں تمہاری ہدایات کا منتظر رہوں گا۔
 

نبیل

تکنیکی معاون
میں نے رپورٹ جنریشن کا کام مکمل کر لیا ہے اور اب میں محسن کی رہنمائی میں تحقیق کر رہا ہوں کہ کس طرح ایک پروگرام لکھ کر تمام فونٹس کے ترسیمہ جات ایک ہی فونٹ میں اکٹھے کر لیے جائیں۔ اس مقصد کے لیے ہم ttx لائبریری کا استعمال کر رہے ہیں جس کا پائتھون سورس دستیاب ہے۔ لیکن ابھی یہ دیکھنا باقی ہے کہ آیا یہ ہمارے لیے مفید ثابت ہوتی ہے یا نہیں۔

محسن نے ذکر کیا تھا کہ ہمیں تمام فونٹس سے صرف ترسیمہ جات کاپی کرنے کی ضرورت ہے۔ اس کے لیے ہمیں ہر فونٹ سے صرف name, glyf, hmtx اور vmtx ٹیبل کاپی کرنے کی ضرورت ہوگی۔ میں نے ttx سے کچھ فونٹس کی ٹیبلز ڈمپ کرکے دیکھی تھیں اور ان میں vmtx نظر نہیں آئی تھی، کیا یہ ٹیبل ان فونٹس میں موجود نہیں ہے؟ (محسن سے سوال۔۔)
 

محسن حجازی

محفلین
جناب میں بہت مسرت سے اطلاع دیتا ہوں کہ Python کا پروگرام مکمل ہو گیا ہے جو دو فونٹ فائلز کو نام سمیت مرج کر دیتا ہے۔
تجربے کے لیے میں نے پاک نستعلیق میں فجر نستعلیق کے گلائفس کو مرج کیا اور یہ کام کامیابی سے ہو گیا۔ اس کے لیے تاہم مجھے ونڈوز اور لینکس کے درمیان کافی چکر لگانا پڑے۔
بس اسے تھوڑا سا ٹیون کرنا ہے تاکہ یہ اسی فائلز کو ساتھ مرج کر دے۔

تمام ساتھیوں کو مبارک ہو! اب ہمیں فونٹ لیب یا ایشیا سٹوڈیو درکار نہیں ہوگا، ہم علیحدہ فائلوں میں کام کیا کریں گے اور ایک ہی کمانڈ سے سب چشم زدن مرج ہو جائيں گی۔:cool:
یہ ایک اہم سنگ میل ہے باقی کاموں کا تو کچھ اندازہ تھا لیکن اس کی بابت اب تک میری گفتگو محض 'ممکن ہے'، 'ہونا تو چاہئے' وغیرہ تک محدود تھی۔
مائکروسافٹ ٹی ٹی ایف specs کا chapter 02 ضرور پڑھئے۔

ابھی ذرا جلدی میں ہوں، کل پروگرام لیتا آؤں گا گھر سے۔
 

نبیل

تکنیکی معاون
زبردست محسن۔ یہ اہم ہی نہیں، بلکہ تاریخی سنگ میل ہے۔ :)
تمارے پروگرام کا انتظار رہے گا۔
ٹی ٹی ایف کی specs پر بھی نظر ڈال لیتے ہیں۔
 

محسن حجازی

محفلین
میں کئی فونٹس کو مرج کرنے کے پروگرام پر کام کر رہا تھا، آپ اسے یہاں دیکھ سکتے ہیں:

http://pastebin.com/f198aef70
http://nopaste.info/94380125e7.html




اسے استعمال کرنے کے لیے کمانڈ لائن پر اس ڈائیریکٹری تک جائیے جہاں تمام فونٹ فائلز پڑی ہیں۔ وہاں پر یہ کمانڈ دیجئے:

يہ پروگرام تمام ٹی ٹی ایف فائلز کو اٹھا کر ایک فونٹ میں یکجا کر دے گا۔ یہ فونٹ mergedfont.ttf کے نام سے اسی ڈائریکٹری میں موجود ہوگا۔
یاد رہے کہ اگر کسی فونٹ میں ایک ہی نام کے دو گلائفس ہوئے، تو ان میں سے پہلا شامل ہو جائے گا بعد والے مسترد کر دئیے جائيں گے۔ مسترد کیے گئے گلائف کے نام آپ کو بتا دیے جاتے ہیں۔
میں اسے اپنے طور پر کافی ٹیسٹ کر چکا ہوں تاہم دفتر میں ٹیسٹ نہیں کیا، چھوٹی کو کہا تھا کہ میرے کمپیوٹر سے اٹھا کر مجھے ای میل کر دے، سو میں فوری طور پر اسے یہاں رکھ رہا ہوں۔
دوسرا یہ کہ میں نے اسے ونڈوز پر بالکل بھی ٹیسٹ نہیں کیا گھر پر بھی لنکس ہےا ور دفتر میں بھی۔ لہذا بتائیے کہ ونڈوز پر کیسا کام کرتا ہے۔
میرا خیال ہے کہ اسے مزید فلٹرز درکار ہوں گے جو کہ صرف ابھی ایک پر محدود ہے اور وہ بھی یہ کہ دو گلائفس کا نام ایک سا نہیں ہو سکتا۔
دوسرا یہ کہ مجھے svn تک اگر رسائی مل جائے تو بہتر رہے گا۔

والسلام،
محسن۔
 

arifkarim

معطل
شکریہ محسن بھائی، فی الحال ان گلفس کی پڑتال کا کام مکمل نہیں ہوا ہے۔ تمام گلفس کی پڑتال کے بعد ان فانٹس کو ایک فائل میں مرج کرنے کیلئے آپ کا پروگرام مفید ہوگا۔ :)
 

محسن حجازی

محفلین
ابھی دفتر میں فرصت ملی تو اس پروگرام کو چلا کر دیکھا ہے۔ میرے پاس 23 فونٹ تھے جن میں سے ایک پاک نوری نستعلیق خود بھی تھا۔
3.2 گیگا ہرٹز کی مشین پر کوئی سات منٹ لگے اور ساٹھ ایم بی تک میموری صرف ہو رہی تھی۔
مجھے کام تیز کرنے کے لیے python process کی nice value زیادہ کرنا پڑی تو کچھ بہتری آئی اور پروسیسر کا استعمال48 سے 70 فیصد تک چلا گيا۔
اس کے بعد میں نے یک جا فونٹ کو fontforge نامی ایڈیٹر میں کھولا جو بنیادی طور پر شاید صرف Linux پر ہی دستیاب ہے۔ یہ ٹول فونٹ لیب سے کہیں زیادہ advanced ہے اور اسی لیے استعمال میں کافی مشکل ہے کیوں کہ اس کے لیے ٹی ٹی ایف فارمیٹ کی اندرونی باتوں کا علم ضروری ہے۔ تاہم کہنے کا مقصد یہ ہے کہ میں نے یک جا کیے گئے فونٹ کو اس ایڈیٹر میں کھول کر چیک کیا۔ یہ ایڈیٹر فونٹ لیب وغیرہ سے اس قدر آگے ہے کہ آپ کو فونٹ کے ٹیبلز اور ڈیٹا میں کسی بھی قسم کی inconsistencies کو اسی وقت رپورٹ کر دیتا ہے۔ لیکن الحمداللہ اس سے جنریٹ کئے گئے فونٹ کے بارے میں کوئی شکایت نہیں کی سو کہا جا سکتا ہے کہ پروگرام درست کام کر رہا ہے۔
تاہم حتمی پتہ تو اسی وقت چلے گا جب اسی فونٹ فائلز کو مرج کیا جائے گا۔ میں نے جن فونٹ پر اسے چلایا، اس میں ایک فونٹ ایسا تھا جس میں 82 فونٹ پہلے ہی مرج کئے گئے تھے (یعنی پاک نوری نستعلیق) جب کہ 22 فونٹ اس کے علاوہ تھے۔
یہ چلتے ہوئے کچھ وقت ضرور لے گا لہذا اس دوران انتظار کیجئے۔
 

نبیل

تکنیکی معاون
زبردست محسن۔ اب نوری نستعلیق فونٹ کی پزل کے پیس اکٹھے ہوتے جا رہے ہیں۔ میں بھی گھر جا کر اس پروگرام کو ٹیسٹ کرکے دیکھتا ہوں۔ اس پر تفصیلی نظر ڈالنے کا وقت شاید ویک اینڈ پر ہی ملے گا۔ تم ترسیمہ جات کی لمبائی کے مطابق مختلف فائلیں بنانے کا سوچ رہے تھے۔ کیا یہ کام اسی مرج پراسیس کے دوران نہیں کیا جا سکتا؟
 

نبیل

تکنیکی معاون
میرے خیال میں ترسیمہ جات کی بلحاظ نام سورٹنگ کا بھی جلد کوئی حل نکل آئے گا۔ کیا مرجنگ کے ساتھ ساتھ سورٹ کرنا بھی مناسب نہیں رہے گا؟
 

نبیل

تکنیکی معاون
ایک اور سوال، میں نے نوٹ کیا ہے کہ تمام فونٹس کی صرف glyf اور hmtx ٹیبلز کو مرج کیا گیا ہے۔ کیا name ٹیبل کی ضرورت نہیں پڑے گی؟
 

نبیل

تکنیکی معاون
اس پروگرام میں شاید کچھ تبدیلی کرکے اس میں ttf کے ساتھ ساتھ utc فائلوں کو بھی مرج کیا جا سکے گا۔
 

محسن حجازی

محفلین
نبیل بھائی، میرے ذہن میں ٹول کٹ ہے ٹولز کی۔ جیسے کہ یونکس کی روایت ہے۔ ایک ٹول بس ایک ہی کام کرے گا۔ جیسے کہ یہ ٹول محض مرج کرتا ہے اور کچھ نہیں کرتا۔
دوسرا ٹول صرف ایک فونٹ فائل کو اٹھا کر محض گلائفس کو ترتیب دے گا۔
تیسرا محض لک اپ جنریٹ کرے گا۔
یوں انہیں ایک پائپ لائن میں execute کروایا جائے گا۔
ابھی جو ٹول آپ کے سامنے ہے، اسے بھی اسے میں نے اس طرح لکھا ہے کہ یہ ٹول بھی ہے اور بذات خود ایک چھوٹی سے API بھی۔
سارٹنگ کے لیے میں strcmp کا سورس کوڈ ڈھونڈ کر اسے دیکھ رہا تھا۔ لیکن اس کے بعد ایک اور زبردست آئیڈیا آيا ہے رات گھر جا کر چیک کروں گا کہ کیا ہوتا ہے۔ اس کے بعد کسی قسم کے سارٹ فنکشن کو لکھنے کی ضرورت نہیں رہے گی :grin:
لیکن اعراب کے ساتھ کیا سلوک کیا جائے؟ مار دیا جائے یا چھوڑ دیا جائے؟
 

محسن حجازی

محفلین
ایک اور سوال، میں نے نوٹ کیا ہے کہ تمام فونٹس کی صرف glyf اور hmtx ٹیبلز کو مرج کیا گیا ہے۔ کیا name ٹیبل کی ضرورت نہیں پڑے گی؟

یہ ttLib خود ہینڈل کرتی ہے۔ اصل میں نیچے تو بہت سے ٹیبل آپس میں بری طرح الجھے ہوتے ہیں ایک کا حوالہ ادھر دوسرے کا ادھر سو پہلے میرا خیال تھا کہ یہ کرنا پڑے گا لیکن جب ہم save کال کرتے ہیں، تو فونٹ کو rebuild کیا جاتا ہے اس وجہ سے name اور loca بھی دوبارہ بنتے ہیں۔ اور یہی وجہ ہے کہ جب فونٹ ڈسک پر لکھا جا رہا ہوتا ہے تو اس وقت بہت وقت لگتا ہے۔
ویسے آپ کو بتاؤں کہ میرا خیال تھا کہ glyf ٹیبل میں جس ترتیب سے glyphs پڑے ہوتے ہیں وہی ترتیب نظر آتی ہے لیکن مطالعے سے پتہ چلا کہ یہ ترتیب ایک اور ٹیبل میں ہوتی ہے جس کا اسم گرامی loca کے نام سے ہے۔ اس میں byte offset درج ہوتا ہے۔
 
Top