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

محسن حجازی نے 'نوری نستعلیق پراجیکٹ' کی ذیل میں اس موضوع کا آغاز کیا، ‏جون 4, 2008

  1. محسن حجازی

    محسن حجازی محفلین

    مراسلے:
    2,513
    موڈ:
    Breezy
    درست! یہی کرنا ہے۔
     
  2. نبیل

    نبیل محفلین

    مراسلے:
    16,749
    جھنڈا:
    Germany
    موڈ:
    Depressed
    محسن، کیا ہمیں اپنے پروگرام سے بھی xml جنریٹ کرنے کی ضرورت نہیں پیش آئے گی؟
     
  3. شاکرالقادری

    شاکرالقادری لائبریرین

    مراسلے:
    2,696
    موڈ:
    Cheerful
    میرا خیال ہے کہ فونٹ کرییٹر میں ایک فائل کے گلفس کو پراپرٹیز کے ساتھ دوسری فائل میں ضم کیا جا سکتا ہے
     
  4. arifkarim

    arifkarim معطل

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

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

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

    نبیل محفلین

    مراسلے:
    16,749
    جھنڈا:
    Germany
    موڈ:
    Depressed
    عارف، اس پراجیکٹ پر کام کے لیے فی الحال یہی ٹیم کافی ہے۔ اس معاملے پر ہماری بات ہو چکی ہے۔
     
  6. arifkarim

    arifkarim معطل

    مراسلے:
    29,828
    جھنڈا:
    Norway
    موڈ:
    Happy
    جی بہتر، میں کسی اور حوالے سے یہ سوچ رہا تھا خیر۔۔۔۔ اگر ان 89 نورین فائلز کو ضم کرنے کیلئے پروگرام بنانے میں تاخیر ہو، تو یہ کام بہت ہی آسانی کیساتھ فانٹ کریٹر میں بھی کیا جاسکتا ہے۔ یہ گلفس کی تمام پراپرٹیز کو کاپی پیسٹ کر سکتا ہے!
     
  7. محسن حجازی

    محسن حجازی محفلین

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

    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.
     
  8. نبیل

    نبیل محفلین

    مراسلے:
    16,749
    جھنڈا:
    Germany
    موڈ:
    Depressed
    شکریہ محسن، میں اس سلسلے میں تمہاری ہدایات کا منتظر رہوں گا۔
     
  9. نبیل

    نبیل محفلین

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

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

    محسن حجازی محفلین

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

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

    ابھی ذرا جلدی میں ہوں، کل پروگرام لیتا آؤں گا گھر سے۔
     
    • پسندیدہ پسندیدہ × 4
  11. نبیل

    نبیل محفلین

    مراسلے:
    16,749
    جھنڈا:
    Germany
    موڈ:
    Depressed
    زبردست محسن۔ یہ اہم ہی نہیں، بلکہ تاریخی سنگ میل ہے۔ :)
    تمارے پروگرام کا انتظار رہے گا۔
    ٹی ٹی ایف کی specs پر بھی نظر ڈال لیتے ہیں۔
     
    • پسندیدہ پسندیدہ × 1
  12. محسن حجازی

    محسن حجازی محفلین

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

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




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

    والسلام،
    محسن۔
     
    • زبردست زبردست × 2
  13. arifkarim

    arifkarim معطل

    مراسلے:
    29,828
    جھنڈا:
    Norway
    موڈ:
    Happy
    شکریہ محسن بھائی، فی الحال ان گلفس کی پڑتال کا کام مکمل نہیں ہوا ہے۔ تمام گلفس کی پڑتال کے بعد ان فانٹس کو ایک فائل میں مرج کرنے کیلئے آپ کا پروگرام مفید ہوگا۔ :)
     
  14. محسن حجازی

    محسن حجازی محفلین

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

    نبیل محفلین

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

    نبیل محفلین

    مراسلے:
    16,749
    جھنڈا:
    Germany
    موڈ:
    Depressed
    میرے خیال میں ترسیمہ جات کی بلحاظ نام سورٹنگ کا بھی جلد کوئی حل نکل آئے گا۔ کیا مرجنگ کے ساتھ ساتھ سورٹ کرنا بھی مناسب نہیں رہے گا؟
     
  17. نبیل

    نبیل محفلین

    مراسلے:
    16,749
    جھنڈا:
    Germany
    موڈ:
    Depressed
    ایک اور سوال، میں نے نوٹ کیا ہے کہ تمام فونٹس کی صرف glyf اور hmtx ٹیبلز کو مرج کیا گیا ہے۔ کیا name ٹیبل کی ضرورت نہیں پڑے گی؟
     
  18. نبیل

    نبیل محفلین

    مراسلے:
    16,749
    جھنڈا:
    Germany
    موڈ:
    Depressed
    اس پروگرام میں شاید کچھ تبدیلی کرکے اس میں ttf کے ساتھ ساتھ utc فائلوں کو بھی مرج کیا جا سکے گا۔
     
  19. محسن حجازی

    محسن حجازی محفلین

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

    محسن حجازی محفلین

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

اس صفحے کی تشہیر