ترسیمہ جات کی سورٹنگ پر کام!

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

  1. arifkarim

    arifkarim معطل

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

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

    مراسلے:
    2,513
    موڈ:
    Breezy
    ارے پروگرامنگ کو کس نے کہا صرف پروگرام چلانے کو کہا۔ اور وہ بہت آسان ہے۔

    python forntsorter.py mergedfont.ttf
    یہ console پر جا کر لکھنا ہے۔
    لیکن شاید آپ کہ ہاں اتنا کچھ انسٹال ہی نہ ہو۔
    اور بس یہ sortedfont.ttf کے نام سے نیا فونٹ آپ کی خدمت میں پیش کر دے گا۔
     
  3. arifkarim

    arifkarim معطل

    مراسلے:
    29,828
    جھنڈا:
    Norway
    موڈ:
    Happy
    میرے پاس پائتھن اور چیتا انسٹال ہے، کوشش کرتا ہوں :)
     
  4. arifkarim

    arifkarim معطل

    مراسلے:
    29,828
    جھنڈا:
    Norway
    موڈ:
    Happy
    میں نے ایک مرجڈ فانٹ فائل کو سارٹ کیا تو یہ ایرر آیا:
    [​IMG]

    انبیل بھائی کا سارٹنگ پروگرام اسکی نسبت درست کام کر رہا ہے، البتہ اس میں وہی hmtx ٹیبل كا مسئله، كیا نبیل بھائی اپنا نیا پروگرام یہاں پوسٹ کر سکتے ہیں۔۔۔ شکریہ
     
    • پسندیدہ پسندیدہ × 1
  5. نبیل

    نبیل محفلین

    مراسلے:
    16,742
    جھنڈا:
    Germany
    موڈ:
    Depressed
    ڈھونڈنا پڑے گا۔
    تمہیں ایک دم کیسے شوق چرایا ہے لگیچر سورٹ کرنے کا؟
     
    • پسندیدہ پسندیدہ × 2
  6. arifkarim

    arifkarim معطل

    مراسلے:
    29,828
    جھنڈا:
    Norway
    موڈ:
    Happy
    یہ میں آپکو فون کرکے بتاؤں گا، آپ کا کیا خیال ہے علوی نستعلیق پر دنیا ختم ہوگئی؟! ;)
     
    • پسندیدہ پسندیدہ × 2
  7. محسن حجازی

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

    مراسلے:
    2,513
    موڈ:
    Breezy
    عارف اگر ممکن ہو تو لینکس پر آ جائیے
     
  8. arifkarim

    arifkarim معطل

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

    نبیل محفلین

    مراسلے:
    16,742
    جھنڈا:
    Germany
    موڈ:
    Depressed
    عارف، میں وہ پروگرام ڈھونڈ کر یہاں فراہم کردوں گا۔ یہ لینکس اور ونڈوز پر ایک طرح سے ہی چلتا ہے۔
     
    • پسندیدہ پسندیدہ × 1
  10. محسن حجازی

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

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

    arifkarim معطل

    مراسلے:
    29,828
    جھنڈا:
    Norway
    موڈ:
    Happy
    شکریہ محسن، میرے پاس پائتھون، چیتا کے علاوہ فانٹ ٹولز اور نمپی لائبریریز انسٹال ہے اور آپ کا فانٹس مرجنگ پروگرا م بھی بخوبی کام کرتا ہے۔ :) سورٹنگ سے متعلق ایک سوال یہ ذہن میں آیا کہ سارٹنگ پراگرامنگ میں یونیکوڈ ویلیو ''ۂ'' شامل نہیں ہے۔۔۔۔ اگر مثال کے طور پر تجربا اسکو کیپیٹل ''e'' پر نارملائز کر دیا جائے تو کیسا رہے گا؟ جواب کا انتظار ہے۔۔۔۔۔۔۔
     
  12. نبیل

    نبیل محفلین

    مراسلے:
    16,742
    جھنڈا:
    Germany
    موڈ:
    Depressed
    عارف اس کوڈ کو چیک کرو۔

    کوڈ:
    import os.path
    
    from fontTools import ttLib
    
    Normalized={}
    Normalized['A']='1'
    Normalized['a']='2'
    Normalized['b']='3'
    Normalized['p']='4'
    Normalized['t']='5'
    Normalized['T']='6'
    Normalized['C']='7'
    Normalized['j']='8'
    Normalized['c']='9'
    Normalized['H']='A'
    Normalized['K']='B'
    Normalized['d']='C'
    Normalized['D']='D'
    Normalized['Z']='E'
    Normalized['r']='F'
    Normalized['R']='G'
    Normalized['z']='H'
    Normalized['X']='I'
    Normalized['s']='J'
    Normalized['x']='K'
    Normalized['S']='L'
    Normalized['J']='M'
    Normalized['v']='N'
    Normalized['V']='O'
    Normalized['e']='P'
    Normalized['G']='Q'
    Normalized['f']='R'
    Normalized['q']='S'
    Normalized['k']='T'
    Normalized['g']='U'
    Normalized['l']='V'
    Normalized['m']='W'
    Normalized['n']='X'
    Normalized['N']='Y'
    Normalized['w']='Z'
    Normalized['W']='a'
    Normalized['o']='b'
    Normalized['h']='c'
    Normalized['O']='d'
    Normalized['U']='e'
    Normalized['u']='f'
    Normalized['i']='g'
    Normalized['y']='h'
    Normalized['1']='?'
    Normalized['.']='?'
    
    def getUrduText(strText):
    	strResult=''
    	for ch in strText:
    		strResult+= charMap[ch]
    	return strResult
    
    def getNormalized(strWord):
    	strResult=""
    	count=len(strWord)	
    	for c in strWord:
    		if(c in Normalized):
    			strResult+= Normalized[c]
    		else:
    			strResult+= '?'
    	return strResult
    
    def cmpNormalized(str1, str2):
    	strNormalized1=getNormalized(str1)
    	strNormalized2=getNormalized(str2)
    	return cmp(strNormalized1, strNormalized2)
    
    def sortGlyphs(adict):	
    	keys = adict.keys()
    	keys.sort()
    	return [dict[key] for key in keys]
    
    tt = ttLib.TTFont("mergedfont.ttf", recalcBBoxes=1)
    
    
    glyphs= tt['glyf']
    hmtx = tt['hmtx']
    
    
    # pre-process the glyphs to delete unnecessary entries
    
    for name in glyphs.keys():
    	try:
    		strNormalized=getNormalized(name)
    	except:
    		pass
    	
    		
    # implement the logic to sort the glyphs in the font
    
    
    keys= glyphs.keys()
    keys.sort(cmpNormalized)
    	
    print "creating data for the output font"
    	
    del tt.glyphOrder[:]
    i=1
    for name in keys:
    	tt.glyphOrder.append(name)
    
    print "saving output font"	
    
    tt.save('test.ttf')
     
  13. arifkarim

    arifkarim معطل

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

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