PDA

View Full Version : سيستم فارسي نويس NTL_font



mic_r_c
شنبه 01 اسفند 1388, 13:27 عصر
سلام به همگي،
اول از همه ميخواستم از يكي از مديرها خواهش كنم، اگر امكان داره اين بحث رو در قسمت اول تالار J2ME قرار بدن تا به صفحات ديگه نره.

چون يك پروژه اوپن سورس رو ميخوام توصيف كنم و فكر كنم خيلي از دوستان ميخوان اطلاعاتي در موردش كسب كنن.

خوب، خيلي از دوستان خواستار سيستم فارسي نويس NTL_font شدن. من هم به عنوان كسي كه اين سيستم رو طراحي كرده ميخوام اون رو به صورت متن باز در اختيار همه دوستان قرار بدم. البته نه اون نسخه مبتدي رو، اين نسخه باحاله رو ميخوام اينجا بذارم.

اول از همه بياين امتحانش كنين و بعد از اون در مورد روش كار با سيستم توضيح ميدم.

راستي من 2 سال روي اين سيستم كار كردم تا به اينجا رسيده، اگر كسي با اين سيستم حال كرد و خوشش اومد و پول در آورد، و خواست تشكر كنه، به وبلاگم يه سري بزنه. :خجالت:

mic_r_c
شنبه 01 اسفند 1388, 15:07 عصر
سلام،
چه كار كردين، امتحان كردينش؟

در پوشه Type writer يه فايل Doc است كه كار با نرم افزار رو توضيح داده.
يه كمي با هاش ور برين ميفهمين چي به چيه. ولي اگر هم متوجه نشديد، مشكلتون رو توي همين تاپيك بپرسيد، يا ايميل بزنيد. اگر هم ايميل بزنيد و هم اينجا مشكلتون رو مطرح كنيد كه خيلي بهتر ميشه.
خلاصه من ايميلم رو روزي 3-4 بار ميچكم.

خوب و اما خود كلاس نازنين font.
در اين سيستم قبل از هر چيز مهمه بدونيد كه هر متني در يك كادر چاپ ميشه و هر كادري هم خوب مسلما يك X ,Y,Width,height داره.
هر متني هم دراي رنگ هست كه چنين قالبي داره: 0xRRGGBB

و اين بايد بدونيد كه كلاس font در هر لحظه از يك مجموعه كاراكتر استفاده ميكنه.
اين مجموعه كاراكتر ها در داخل يك تصوير قرار دارند و يك آرايه bound معرف هر كدام از كاراكتر هاست، به اين صورت:
با فرض اينكه آرايه از 1 تا n باشد:
- اعداد ي كه در خانه هاي فرد هستند موقعيت X كاراكتر در تصوير مشخص مي كنند.
- اعدادي كه در خانه هاي زوج هستند طول آن كاراكتر را مشخص مي كنند.

كلاس font در هنگام فراخواني شدن، ابتدا از روي هر كاراكتر نمونه برداري مي كند و اطلاعات مربوط به پيكسل هاي سياه را در حافظه نگه داري مي دارد.
اين كار كه همان روش Indexing است، تقريبا 7 ثانيه زمان مي برد. البته يك الگوريتم رو دارم طراحي ميكنم كه فقط در اولين باري كه نرم افزار كارش رو شروع ميكنه 7 ثانيه زمان ببره و در دفعه هاي بعدي فقط 2 ثانيه زمان ببره.

خوب پس در اولين اقدام بايد يك object از كلاس font بسازيم.
چه جوري؟ اين جوري:


int character_bounds[] = {4,14,27,14,49,10,66,10,84,14,107,...,5663,5,3670, 4,3676,6,3686,7,3695,5,3703,3};
font ft = new font("/1.png", character_bounds);



همون طور كه ميبينيد اولين پارامتر نام فايل تصوير كاراكتر هاست و دوميش هم يه آرايه از نوع int براي معرفي مجموعه كاراكتر هاست.

mic_r_c
شنبه 01 اسفند 1388, 15:16 عصر
سلام،
نوشتن متن با استفاده از اين كلاس مثل نوشيدن يك قورت، يا شايد هم غورت، ايستك اناره!

اول از همه بايد بدوني كه در اولين باري كه NTL_font بار گذاري ميشه، رنگ فونت سياهه. ولي اگر تغييرش دادي، ديگه سياه نيست.

و از اونجايي كه تغيير رنگ در اين سيستم كوچك ترين تاثيري روي سرعت نوشتن كاراكتر ها نداره، چون از Indexing استفاده شده، پس با خيال راحت، قبل از هر متن كوچك يا بزرگي كه ميخواهيد بنويسيد رنگ متن رو تعييد كنيد.

متن رو اينجوري بنويسيد:

/**
* The text that will be show on the LCD.
*/
char[] text ={231,82,65,68,231,231,82,84,76,231,57,...,3,230,7 0,61,79};
//------- Determines the color of the text.
ft.setColor(colors[colors_idx]);

//------- Writes the main text in a frame.
NTL_prop = ft.write(g, 0, 0, getWidth(), getHeight(),true,0,text,false);




اما پارامتر هاي متد تابع write:
1- يك شي از نوع Graphics كه در واقع همون شي Graphics اي است كه در قسمت پارامتر متد paint در داخل Canvas است.
2- موقعيت X كادر متن.
3- موقعيت Y كادر متن.
4- طول كادر متن.
5- عرض كادر متن.
6- مشخص ميكند كه آيا متن از انتهاي كادر مي تواند بيرون بزند يا نه. از نوع Boolean
7- تعداد خطوطي كه بايد نشان داده نشوند تا خطوط پايين تر نشان داده شوند. از اين پارامتر براي اسكرول كردن استفاده خواهيم كرد. براي اطلاعات بيشتر پست مربوط به NTL_writer_properties را بخوانيد.
8-متن مورد نظر در قالب آرايه اي تك بعدي از نوع char و با استانداردU بي` پايه و اساس و افشين ( درنقش "من") در آوردي NTL_font
9- آخري رو هرچي ميخواي بزني بزن. ولي اگر false بزني بهتره. در اصل كاراييش زمانيه كه امكان خفن تغييره رنگ در داخل متن رو بهش اضافه كنم.

تابع setColor هم كه معلومه ديگه، يك پارامتر از نوع int و با استاندارد RRGGB دريافت ميكنه. باز نرين AARRGGBB بزنين و بعد بياين هي پست بدين كه چرا كار نميكنه.
شي NTL_prop چيه؟ پست مربوطه رو بخونيد!

mic_r_c
شنبه 01 اسفند 1388, 16:08 عصر
سلام،
اگر با كلاس فارسي ساز قبلي كار كرده باشيد متوجه مي شين كه اين NTL_writer_properties عجب كلاسه با كلاسيه و چقدر كار هايه اسكرول كردن متن رو دقيق و راحت ميكنه.

اين كلاس داراي field هاي زير است:
1- last_Y_pos آخرين موقعيت Y را در زمان نوشتن آخرين كاراكتر بر مي گرداند. مورد استفاده برنامه نويس نيست.
2- last_X_pos مثل همون بالايي فقط در مورد X كار ميكنه، اينم به برنامه نويس دخلي نداره!
3- Line_Quantity: تعداد كل خطوطي كه كاراكتر هاي داده شده< در اندازه عرض كادر و ارتفاع بينهايت مي سازند. خيلي كاري ندارد.
4- Rest_lines: تعداد خطوطي كه از ارتفاع كادر زدن بيرون. بازم شما خيلي باهاش سرو كار نداريد مگر اينكه بخواهيد از اين اسكرولر هاي خطي بسازيد كه موقعيت متن را نمايش ميدهند.
6- Frame_line_capacity: تعداد خطوطي كه ميتونند داخل فريم نمايش داده بشن. خيلي با هاش كاري ندارين.

7- need_to_scroll_down: آها اينه! يك مقدار boolean كه اگر True باشه يعني نياز است كه به سمت پايين اسكرول بشه و اگر false بود يعني احتياجي نيست. وقتي ميگوييم بايد به سمت پايين اسكرول بشه يعني يه تعداد خط در زير كادر قرار گرفته اند و بايد بيان بالا.
8- need_to_scroll_up: همون حرف هايي رو كه در بالا (7) زدم رو چپه كنيد، كارايي اين معلوم ميشه.

روش استفاده:

NTL_writer_properties NTL_prop = new NTL_writer_properties();
//------- Writes the main text in a frame.
NTL_prop = ft.write(g, 0, 0, getWidth(), getHeight() - ft.calcHeight() - 7,true,text_ignored_lines,text,false);

//------ Checks the NTL_prop to draws the UP or DOWN arrow.
if(NTL_prop.need_to_scroll_up)
g.drawImage(ArrUp, 0, 10, Graphics.LEFT|Graphics.TOP);
if(NTL_prop.need_to_scroll_down)
g.drawImage(ArrDn, 0, getHeight()-ArrDn.getHeight()-30, Graphics.LEFT|Graphics.TOP);


حالا به متد write نگاه كنيد!
پارامتر هفتم به يك متغير تغيير داده شده. كار اين پارامتر اين است:
اگر شما 10 تا سيب داشته باشي و بخواهي روي ميزي قرار بدي كه فقط جايه 8 تا سيبه، اون وقت مجبوري، 8 تا سيب رو روي ميز و بقيه رو خارج ميز بذاري. حالا اگر بخواي سيب نهم رو روي ميز بياري، بايد يك سيب از اول ميز برداري، و اگه بخواي دهمين سيب رو بذاري روي ميز بايد 2 سيب از اول ميز برداري تا سيب نهم و دهم بيان روي ميز قرار بگيرن.
پس داريم:

public void keyPressed(int keyCode)
{
int Game_Act = getGameAction(keyCode);

if(Game_Act == Canvas.DOWN && NTL_prop.need_to_scroll_down)
{
text_ignored_lines ++;
}
else if(Game_Act == Canvas.UP && NTL_prop.need_to_scroll_up)
{
text_ignored_lines --;
}

if(keyCode == Canvas.KEY_STAR)
{
colors_idx = (colors_idx > colors.length-2 ? 0:colors_idx+1);
}
repaint();
}


از كليد ستاره و فشردن سريع و پشت سره هم، ميتونيد سرعت تغييره رنگ رو ببينيد.
:لبخند:

mic_r_c
شنبه 01 اسفند 1388, 19:19 عصر
سلام،
شايد بخواهيد در ميان متن تصوير هم درج كنيد، مثل يك كتاب مصور.
ابتدا بايد با كلاس PIC_page و field هاي آشنا شويد.
كلاس font در داخل متن مي گرده و وقتي به كاراكتر تگ برخورد ميكنه، اطلاعات اون تگ رو تحليل ميكنه، اطلاعات تگ تصوير داراي 2 پارامتر است. پارامتر اول مربوط به نام تصوير و پارامت دوم مربوط به موقعيت تصوير در صفحه است، كه مي تواند يكي از موارد وسط، چپ و يا راست باشد.

روش كار به اين صورت است كه ابتدا بايد يك آرايه از نوع PIC_page تعريف نمود و بعد فايل هاي تصويري كه نياز داريد كه نمايش داده شود را لود كنيد.
سپس در يك حلقه هر كدام از خانه هاي آرايه مذكور را به شكل زير بار گذاري نماييد.

//Loading 2 Images from the jar resource.
Image img[] = {Image.createImage("/test.jpg"),Image.createImage("/Arrow.png")};
//The name of Images.
String img_name[] = {"test.jpg","Arrow.png"};
//pics is a PIC_page object. Read the documents.
PIC_page[] pics = new PIC_page[2];

for(int i=0; i < pics.length; i++)
{
pics[i] = new PIC_page();
pics[i].image = img[i];
pics[i].tag = img_name[i];
}

و بعد از اينكه تمام خانه هاي آرايه مذكور را پر كرديد، آن را به شي كلاس font معرفي نماييد

//Assigning the NTL_font PIC_IMGs with the pics array.
ft.PIC_IMGs = pics;


به همين سادگي!
فقط يادتون باشه كه وقتي دارين توي برنامه ويندوز نام تصوير رو وارد مي كنيد، نامي هم كه اينجا به آرايه PIC_page معرفي ميكنيد بايد برابر باشند.
يعني اگر تگ تصوير داراي نام test.jpg است، اينجا هم يكي از تصاوير را به همان نام test.jpg درج ميكنيم. در غير اين صورت خطا به وجود مي آيد.
نمونه كد J2ME را به دقت مطالعه نماييد.

mic_r_c
یک شنبه 02 اسفند 1388, 10:14 صبح
سلام،
يكي از خصوصيات NTL_font اينه كه هر فونتي، با هر اندازه اي كه بهش بدي، براي كلاس font فرقي نداره.
پس لطفا با استفاده از اين Application فونت هاي مورد علاقه خودتون رو بسازيد و اگر دوست داشتيد اون ها رو اينجا upload كنيد تا بقيه هم فيض ببرند!
البته قبل از هر چيز بايد بگم كه اين برنامه دقيق كار نميكنه، ولي با استفاده از photoshop بايد با خط هاي قرمز، سرو ته هر character رو مشخص كنيد. بعد با استفاده از يك برنامه كمكي كه يكي از دوستان زحمتش رو ميكشه، اين خط ها رو بخونيد. به اين صورت كه خط اول از چپ به راست، موقعيت X و بعد خط دوم رو بخونيد، بعد خط اول رو از موقعيت خط دوم كم كنيد تا طول character به دست بياد. بعد هر دو رو در قالبي مشخص ذخيره كنيد.

درواقع نرم افزار پايين هم همين كار و ميكنه ولي بايد يه كمي روش كار كنم تا تصوير ورودي هم بگيره. ولي قضيه "آب هندوانه" يه كمي مشكل سازه!:قهقهه:

مرسي

ermia2008
یک شنبه 02 اسفند 1388, 10:55 صبح
سلام حاج افشین
درود بر تو...
احسنت به این سخاوت...
تقریبا تستیدمش. خیلی عالی بود. میدونم که خیلی برای این برنامه زحمت کشیدی.واقعا خسته نباشی :تشویق:

mic_r_c
یک شنبه 02 اسفند 1388, 21:35 عصر
سلام،
استفاده از اين نرم افزار خيلي راحت و ساده است.
نرم افزار رو باز كنيد. در قسمت Option يك جعبه متن با نام Collection وجود دارد، نيازي نيست به محتواي آن دست بزنيد، ولي در كل براي تعيين كردن كاراكتر هايي است كه بايد در تصوير قرار گيرند.
از ImageHeight هم براي تعيين اندازه PictureBox استفاده كنيد، اگر ديديد كه فونت از ارتفاع pictureBox بيشتر شده، مقدار اين آيتم را افزايش بدهيد.

در كنار جعبه متن font family يك دكمه وجود دارد، با كليك آن فونت و اندازه مورد نظر خود را انتخاب نماييد.

با افزايش مقدار Pre tolerance كاراكتر ها را از جلو به هم نزديك تر كنيد.
با افزايش مقدار Post tolerance كاراكتر ها را از عقب به هم نزديكتر مي نماييد.

با تيك دار كردن گزينه Draw red guide lines نحوه تقسيم بندي كاراكتر ها را نمايش ميدهد تا با دستكاري كردن دو آيتم pre tolerance و post tolerance اندازه كاراكتر ها را دقيق تر مشخص نماييد.

گزينه Draw double line به شما اين امكان را مي دهد تا دقيقترين حالت ممكن را براي هر كاراكتر مشخص نماييد. كه بهتر است اين گزينه را نيز تيك دار كنيد.

گزينه english and farsi numbers تعيين مي كند كه آيا اعداد به صورت فارسي و انگليسي در تصوير درج شوند يا فقط انگليسي.

پس از اين كه تنظيمات رو انجام داديد دكمه MAKE را بزنيد تا تصوير كاراكتر ها در PictureBox ضاهر شود.

با فشردن دكمه Save نيز ابتدا فايل متني حاوي معرف فونت را ذخيره ميكنيد كه به صورت يك آرايه عددي است و در قسمت intialize كردن كلاس font مورد استفاده قرار ميگيرد. و بعد از آن فايل تصوير كاراكتر ها را با فرمت png ذخيره مي نماييد.

اما نكته مهم:
هر كاراكتر در زبان فارسي ممكن است بيش از يك حالت داشته باشد.
در هر حال 4 حالت كلي وجود دارد:
1 - حالت تنها، (alone)
2- كاراكتري كه از عقب مي چسبد به كاراكتر جلويي (prefix)
3- كاراكتري كه از جلو مي چسبد به كاراكتر عقبي (postfix)
4- كاراكتري كه از هر دو طرف به كاراكتر هاي عقب و جلو مي چسبد (midfix)

در حالت اول خطوط قرمز از سمت راست بايد كاملا روي اولين خط پيكسل كاراكتر باشد و خط دوم در سمت چپ بايد حدود 2 يا 3 پيكسل از آخرين خط پيكسلي كاراكتر فاصله داشته باشد.

در حالت دوم اوليم خط قرمز از سمت راستبايد كاملا روي اولين خط پيكسلي قرار گيرد و خط دوم نيز بايد دقيقا روي آخرين نقطه پيكسلي در سمت چپ باشد.

در حالت سوم اولين خط قرمز بايد دقيقا روي اولين نقطه پيكسلي كاراكتر در سمت راست قرار گيرد و خط قرمز بعدي بايد 2 يا 3 پيكسل از آخرين خط پيكسلي فاصله بگيرد.

در حالت چهارم خطوط قرمز بايد دقيقا روي نقطه هاي اول و آخر كاراكتر قرار بگيرند.

موفق باشيد!

mic_r_c
دوشنبه 03 اسفند 1388, 12:50 عصر
سلام،
حتما در زمان كار با Canvas مجبور شديد كه از مختصات نسبي هم استفاده كنيد.
مثلا يك تصوير، هميشه از در وسط صفحه قرار بگيرد، يا متني در گوشه سمت چپ قرار بگيرد.

اين هم همينه، فقط بايد x و Y فريم رو منتقل كنيد به محلي كه ميخواهيد و مقدار خطوط Ignore شده را 0 كنيد و همين طور ارتفاع رو به اندازه يك خط يا هر چقدر كه نياز داريد تنظيم كنيد.
به هر حال از اين توابع استفاده خواهيد كرد:


calcHeight()
calcWidth(int char)
Text_width(char[] text)




1- براي بدست آوردن ارتفاع كاراكتر.
2- طول پيكسلي يك كاراكتر مشخص را باز ميگرداند
3- متن خود را به عنوان پارامتر بدهيد و طول پيكسلي آن را در ارتفاع يك خط بگيريد. از اين متد براي تعيين اندازه يك تيتر يا دكمه استفاده مي شود. يعني هر متني كه فقط يك خط است.
4- از متد write براي تعيين ارتفاع يك متن چند خطي و با عرض كادر معيين استفاده نماييد. به اين شكل كه به جاي پارامتر اول كه از نوع Graphics است، مقدار Null بذاريد و از NTL_writer_properties اي كه بر ميگرداند، تعداد كل خطول را بخوانيد.
مسلما براي تعيين مقدار پيكسلي ارتفاع متن بايد تعداد خطوط را در اندازه ارتفاع يك كاراكتر، يعني متد اول، ضرب شود.

اينم از NTL_font
حالا برين پولدار بشين و حال كنيد. براي منم ايستك بخرين :چشمک:

من اين تاپيك رو سر ميزنم، ايميلم هم روزي 2 بار چك ميشه، كاري داشتين سعي كنيد كه ايميل بزنيد. mic_r_c@yahoo.com

موفق باشيد

rashid1368
دوشنبه 03 اسفند 1388, 14:36 عصر
سلام
حال دادی به همه اون هم از نوع ایستکی که معلومه خیلی دوست داری افشین حسینی

mic_r_c
سه شنبه 04 اسفند 1388, 07:31 صبح
سلام،
براي بعضي از كارها كه انيميشن و ندارند و سرعت نوشتن خيلي مهم نيست و فقط سرعت بارگذاري مهمه، مثل كتابهاي الكترونيكي ساده، ميشه از اين كلاس استفاده نمود.

mic_r_c
چهارشنبه 05 اسفند 1388, 18:22 عصر
سلام،
اگر چه سعي ميكنم بعد از اين نسخه هاي جديد اين پروژه رو اينجا هم بذارم، ولي هر چند وقت يكيار به www.afshin-cv.info و www.svtln.blogfa.com سر بزنيد تا از آخرين منابع مربوط به اين پروژه و ساير پروژه ها آگاه شويد!

rashid1368
شنبه 08 اسفند 1388, 11:58 صبح
سلام آقای حسینی وبقیه دوستان عزیز
من هنوز هم نمیدونم چحوری میشه با این برنامه کار کرد
من فایل های sfc رو ساختم ولی الان نمی دونم چجوری میشه با اونا کار کرد
ممنون میشم اگه کسی بتونه کمک کنه
در ضمن تو فایل راهنما نوشتین که فایلی رو باید به قسمت resource هااضافه کنیم
من که این فایل رو نتونستم پیدا کنم

mic_r_c
یک شنبه 09 اسفند 1388, 08:11 صبح
سلام
فایل های resource همان فایل هایی هستند که در داخل فایل JAR قرار میگیرند.
مثل یک تصویر JPG که برای نمایش دادن باید یه آدرس محلی براش وارد کنی.

حالا روش کار به این شکله که فایل SFC رو از داخل فایل JAR باید بخوانی و محتویات آن را به نوع آرایه CHAR تبدیل کنی و بعدش هم به کلاس font بدی تا باقی کارها پیش بره.

مثلا ما در اینجا فایل هایی با پسوند SFC رو داخل پوشه BOOK قرار دادیم و بعد هم در پوشه SRC گذاشتیمش تا در فایل JAR بیاد. با استفاده از تابع زیر شماره صفحه رو میدیم و اون هم میره اطلاعات رو بارگذاری میکنه و بعد هم تبدیل به آرایه ای از نوع char میکنه.


private void loadPage(int Page_number)
{
try{
InputStream is = this.getClass().getResourceAsStream("/BOOK/" + Integer.toString(Page_number) + ".SFC");
byte[] b = new byte[is.available()];
is.read(b);
context = byte_to_char(b);
}catch(Exception e){e.printStackTrace();}
}


از این تابع هم برای تبدیل آرایه byte به آرایه char استفاده میشه:


public char[] byte_to_char(byte[] bytes)
{
char[] chr = new char[bytes.length];
int cnt=0,lp=0;

for(lp=0; lp<bytes.length; lp++)
{
if(bytes[lp] < 0)
chr[lp] = ((char)( ((int)256 + bytes[lp])));
else
chr[lp] = ((char)(bytes[lp] ));
}
return chr;
}


موفق باشید

mic_r_c
سه شنبه 11 اسفند 1388, 07:34 صبح
سلام،
كي حاضر بنويسه؟
اگر شما 80 صفحه داشته باشيد كه هر صفحه 1 يا 2 تصوير داشته باشه و بخواهيد متن و تصوير رو در صفحه نمايش دهيد، برنامه اي بنويسيد كه محتويات اطلاعات NTL_code رو بررسي كنه و نام تصاويري كه درخواست شده را استخراج نمايد تا با استفاده از اين نام تصوير، تصوير يا تصاوير مورد نظر بارگذاري شود.
دقت نماييد كه ممكن است يك صفحه داراي چندين تصوير باشد.

اصول كار :
۝PIC T:'1.png' A:'M'۝
اين يك تگ براي نمايش اطلاعات يك تصوير به نام 1.png است.
اطلاعات بين دو كاراكتر 231 در مبناي NTL_font، كاراكتر هاي تگ گذاري هستند. اطلاعاتي كه در بين اين دو كاراكتر قرار ميگيرند داراي كد ASCII هستند (نه NTL_CODE) پس اطلاعات بين اين دو تگ را با استفاده از يك تابع تجزيه و تحليل كرده و نام تصوير را بر گردانيد.

منتظريم!

mic_r_c
سه شنبه 11 اسفند 1388, 07:41 صبح
سلام،
از مدل اطلاعات آرايه اي فقط براي متون كوچك استفاده كنيد، مثل دكمه ها و تيتر ها و اينجور چيز ها.
براي اطلاعات بزرگ مثل اطلاعات يه صفحه از فايل هاي SFC استفاده كنيد. در غير اين صورت به شكل وحشتناكي سرعت برنامه مياد پايين.
نكته ديگه اينكه، در يك صفحه بيش از تقريبا 800 كاراكتر استفاده نكنيد، و الا در گوشي هاي بي جنبه با هنگ و منگ شدن گوشي برخورد ميكنيد.

موفق باشيد

rashid1368
سه شنبه 11 اسفند 1388, 12:40 عصر
سلام،
از مدل اطلاعات آرايه اي فقط براي متون كوچك استفاده كنيد، مثل دكمه ها و تيتر ها و اينجور چيز ها.
براي اطلاعات بزرگ مثل اطلاعات يه صفحه از فايل هاي SFC استفاده كنيد. در غير اين صورت به شكل وحشتناكي سرعت برنامه مياد پايين.
نكته ديگه اينكه، در يك صفحه بيش از تقريبا 800 كاراكتر استفاده نكنيد، و الا در گوشي هاي بي جنبه با هنگ و منگ شدن گوشي برخورد ميكنيد.

موفق باشيد

Salam
Age mibinid finglish neveshtam vase ine ke to site daneshgaham va inja farsi nadare
Sharmande
Ya'ni hich rahi naboud baraye inke in file haye SFC dakhele khode barname sakhte beshan
mesle barnameyi ke man az barname shoma sakhtam
http://barnamenevis.org/forum/showthread.php?t=205586

mic_r_c
سه شنبه 11 اسفند 1388, 16:03 عصر
سلام،
چرا ميشه!
برنامش رو شما زحمتش رو بكش. همون برنامه C#‎ رو به J2ME بايد تبديل كرد.
ولي علت اساس اين امر اينكه كه برنامه مبدل پروسه سنگين تري نسبت به برنامه نويسنده داره. بنابراين براي متون بزرگ بهتره كه در داخل كامپيوتر اين كار تبديل انجام بشه.
البته براي تايپ در داخل برنامه بايد اين كلاس رو به J2ME تبديل كرد.

خوب آقا رشيد يا بقيه دوستان، لطفا برنامه مبدل رو به J2ME تبديل كنيد. اين كار خيرتون رو فراموش نمي كنيم (از طرف من و ساير برنامه نويسان)!

مرسي

houtanbarname
سه شنبه 11 اسفند 1388, 19:17 عصر
سلام
ميخواستم ببينم justify كردن يا تراز كردن خطوط به چه شكل هست ؟

mic_r_c
سه شنبه 11 اسفند 1388, 20:28 عصر
سلام،
در خطوط چند سطري اگر از حروف عربي و يا عربي و انگليسي استفاده كنيد متن از راست به چپ و به صورت RightAlign نوشته ميشه.
اگر در متن چند خطي فقط انگليسي استفاده كرده باشيد از چپ به راست و به صورت چپ چين نوشته ميشه.

JUSTIFY به اون شكلي كه شما مد نظرتون هست، هنوز طراحي نشده :اشتباه:

mic_r_c
چهارشنبه 12 اسفند 1388, 18:13 عصر
سلام،
براي استخراج تمامي تصاوير داخل متن تنها كافيه متن خود را كه به صورت آرايه اي از كاراكتر است، به همراه مسيري كه تمام تصاوير مورد نياز متون چند صفحه اي شما است را به عنوان پارامتر به تابع زير بدهيد. البته ابتدا بايد كلاس زير را به بسته NTLfonts اضافه كنيد.

روش استفاده از كلاس:

public void init_pictures()
{
PIC_page[] pics = (new Image_exctractor()).extract_Images(text, "");
ft.PIC_IMGs = pics;
}

hajrasoul
شنبه 15 اسفند 1388, 15:52 عصر
سلام به همه برنامه نویس ها

دوستانی که قصد دارن از این کلاس برای بار گذاری سریع استفاده کنند توجه کنند که هرجا از
ft.calcHeight() استفاده شده باید عدد 0 رو به عنوان پارامتر بهش بدن یعنی اینجوری
ft.calcHeight(0)

اینم نکته ای بود که تو استفاده از این کلاس باید دقت کنیم.
از آقا افشین بابت راهنمائیشون ممنونم.

ابوذر محمودی
یک شنبه 16 اسفند 1388, 21:00 عصر
سلام افشین جوووون ، خدا خیرت بده جوووون ! (توجه کنید به ترکیب زیبای جان و جوان ، چه قافیه ای اختراع کردم من!!):تشویق::قلب:
افشین جون من چند ماه پیش بهت میل زدم و گفتم چه جوری میشه متنی که در حال نمایش هستش رو بدست آورد.
منظورم اینه که اگه کلمه "سلام" روی صفحه نمایش داده می شه ،همین رو تو یه متغیر رشته ای ذخیره کرد.
البته قبلا گفتی که اینکار فعلا نمیشه ، گفتم بپرسم ببینم تو این برنامه جدید این امکان وجود داره یا نه؟:متفکر:
- من تو کار برنامه های تحت وب و ویندوز هستم و چون جاوا کار نمی کنم زیاد از مباحث مطرح شده سر در نمی یارم. و تا بخوام سر در بیارم این کارخانه ایستک شما هم فرسوده میشه (خطاب به آقا افشین ، همون قضیه آب هندونه خودمونو گفتم یره !!!)
پس لطفا یه کم توضیح بیشتر بدین.البته نه ولش کن ، من که سر در نمی یارم الکی خودتو خسته نکن.:لبخند:
اگه کسی از دوستان با این برنامه یه ebook ساخته ، تقریبا مثل برنامه قدیمی آقا افشین که اولش منو داشت بعد هم به صفحات مریوط میرفت لطف کنه آقایی کنه به میل منم بفرسته .
بازم می گم اگه کسی ebook ساخته واسه منم بفرسته، نه که اخماتون بره تو هم و هی پست بزنین که آقا درخواست پروژه ممنوعه !!:بامزه:
اینم ایمیل من :
virus30ya30@yahoo.com
البته اگه خواستین بفرستین subject ایمیل رو یه چیزی بزنین تا من متوجه شم .
آخه امان از دست این اسپم ها ، همه ی ایمیل هام توشون گم می شن.

mic_r_c
یک شنبه 16 اسفند 1388, 21:52 عصر
سلام،
اينم يه برنامه به زبان C# كه با استفاده از تابع convert_to_unicode() مي تونيد اطلاعات NTL_font رو،كه در قالب آرايه char است، به داده هاي utf8 يا uniode تبديل كنيد.

البته اگر يكي لطف كنه و نسخه j2me اين كد رو هم بسازه ممنون ميشم، و الا خودم مجبور مي شم بسازم!
:چشمک:

rashid1368
دوشنبه 17 اسفند 1388, 13:35 عصر
سلام دوباره افشین جان
من نظرم رو درباره برنامه ای که ساختی برات گذاشتم
ولی دیدم بهتره همه استفاده کنن
برنامه شما بسیار بسیار عالی است
برنامه فونت فارسی الان برای موبایل تا جایی که من می دونم از نوع سورس بازش سه تا هست
1 - برنامه آقای احسان جوانشیر که در سایت gsmaria.com هست و می تونین دانلودش کنین
2 - برنامه آقای امینی که از دوستای خودم هست که می تونین اونو از لینک زیر ببینین
http://barnamenevis.org/forum/showthread.php?t=205586
3 - برنامه شما که در طول یه پروسه زمانی ، به جایی رسید که الان هست

از بین این سه تا فونت به نظر من نمی شه گفت کدومشون بهترینن. مثلا برنامه ای که آقای جوانشیر نوشتن راحته برای استفاده کردن. به طور کلی خوش دسته
برنامه آقای امینی سرعت بالاتری نسبت به دوتای دیگه داره یعنی من اینو به عینه تجربه کردم. همین طور از برنامه آقای جوانشیر بهتر هستن.
اما برنامه شما به طور کلی از دوتای دیگه از نظر نوآوری واقعا بیست بیسته. یعنی تقریبا از همه نظر از برنامه های بالا بهتره فقط دو تا عیب داره
1 - برنامه ساخت فایل های sfc جدا از برنامه تون هست. یعنی من یه متنی رو طراحی کردم بعد می بینم یه سری اشکال داره . باید برم دوباره فایل sfc رو بسازم
2 - حالا با عیب بالایی میشه یه جورایی کنار اومد. عیب دیگه ای که شاید باعت میشه من اکثر مواقع از برنامه آقای امینی به جای برنامه شما استفاده کنم بحث سرعت می باشد
من الان دارم یه برنامه می سازم با فونت ابداعی شما. البته ترکیبی از فونت های بالا
بعضی از فصل های کتاب که حجم بالایی داره( حالا خیلی هم نیست) مثلا 11kb رو واقعا با سرعت کم نشون می ده در حالی که برنامه آقای امینی لحظه ای نشون میده
خیلی پرحرفی کردم
ولی در کل خیلی ممنون از زحماتت. انشاالله که بتونی سرعت برنامه ات رو هم زیاد کنی

mic_r_c
دوشنبه 17 اسفند 1388, 18:59 عصر
سلام،
خيلي ممنون rashid.
خوب البته شايد حق با آقا رشيد باشه. طراحي NTL_font بيشتر به تميزي كار پرداخته تا زمان.

خوب اين مقايسه خيلي خوبه آقا رشيد. بيا يك كار كن. اين 3 نوع كلاس فارسي نويس رو در موارد زير با هم مقايسه كن و به صورت PDF روي برنامه نويس بذار.

1- فارسي و انگليسي رو بدون مشكل در كنار هم بنويسد. اگر عبارت انگليسي از يك خط بيشتر شد چه اتفاقي مي افتد و آن را چگونه مينويسد.
2- سرعت تغيير رنگ متن.
3- قابليت چاپ تصوير در ميان خطوط
4- اگر يك كلمه از اندازه عرض صفحه بيرون بزند، برنامه چه برخوردي با اين خط ميكند.( يك كلمه يعني خطي كه حاوي هيچ فضاي خالي يا space اي نباشد.) مثلا: "سلامسلامسلامسلامسلامسلامس لامسلامسلامhellohellohellohellohello"
بعضي وقت ها مشاهده ميشه كه عبارتي مثل : mic_r_c@yahoo.com از ابعاد چارچوب متن بيرون ميزنه يا اصلا برنامه هنگ ميكند و يا اين عبارت را به خط پايين مي برد و ديگر به آن توجه نمي كند.
5- كاراكتر هايي مثل پرانتز و علائم بزرگتر و كوچكتر را چگونه نمايش مي دهد. مثلا (<عبارت فارسي>) و (<english content>)
6- سرعت: مثلا چند ميلي ثانيه براي 15 خط.
7- سرعت لود اوليه.

براي فايل ها با حجم بالا هم اين اخطار رو داده بودم كه هر صفحه نبايد حاوي بيشتر از 800 كاراكتر باشه. حالا شما ميخواي 9000 كاراكتر رو چاپ كني و اين يك كم مشكل زايه.
البته مشكل از شما نيست. برنامه براي اين كه بتونه ميزان دقيق خطوط رو حدس بزنه و به شما اين امكان رو بده تا به راحتي يه scroll bar بسازيد مجبور ميشه همه كاراكتر ها رو بررسي كنه. در كلاس هاي ديگه فقط به اندازه گفته شده كاراكتر ها رو چاپ ميكنه و محاسبان بعدي رو هم بي خيال ميشه و خوب طراحي يه اسكرول خوب هم سخت تر ميشه.
البته نكته ديگه اينه كه اولين كلاس فارسي نويسم خيلي سريع مي نوشت چون ميزان محاسباتش در حد صفر بود. ولي اينجا خيلي درگير تگ ها شده و محاسباتش پيچيده تر شده.

براي اون مورد ويرايش فايل هاي sfc هم دارم كار ميكنم. برنامه مبدل رو اگر به j2me تبديل كنيم تمومه! :چشمک:

اگر اين موارد رو مقايسه كني به همه برنامه نويس ها كمك ميكني تا بهترين مورد رو براي كاراشون انتخاب كنن. البته ميدونم يك كمي خسته كننده يه ولي خيلي كاره با ارزشي يه. خيلي ها به نتيجه اين مقايسه نياز دارن.

البته من هم خيلي نتيجه اين تحقيق رو نياز دارم.
منتظرم - مرسي

rashid1368
پنج شنبه 20 اسفند 1388, 14:47 عصر
سلام
این هم مقایسه آماتور بین فونت های اوپن سورس.
این که یه کم دیر شد برای این بود که من در راه برگشت از دانشگاه بیرجند به اصفهان بودم. دیروز رسیدم و درستش کردم و امروز هم برای مشاهده شما میگذارمش.

http://www.4shared.com/file/238887253/e17d4196/compare.html

هرکدوم از دوستان نکته ای داشتند خوشحال می شم بگن.
در کل منتظر نظرات شما دوستان هستم

نکته: من این فایل pdf رو روی سرور 4shared گذاشتم. اگه دوستان می تونن اون رو روی سرور خود سایت برنامه نویس بگذارن. چون حجمش حدود 800 kb بود و نمی شد اینجا گذاشت.

mic_r_c
پنج شنبه 20 اسفند 1388, 15:58 عصر
سلام،
آقا رشيد، واقعا متشكرم از اين مقايسه واقعا عالي. البته نه به خاطر اين كه كلاس فارسي ساز من رتبه بيشتري آورد بلكه به خاطر زحمتي كه كشيدي.

البته من همينجا از آقاي اميني هم تشكر مي كنم.

اميدوارم يه روز همه ما برنامه نويس ها بتونيم بدون نگراني از كپي هاي غير مجاز، برنامه هاي بزرگتر از اين رو بنويسيم.

من اين PDF رو در سايت خودم و در وبلاگم link ميكنم.(البته با نام شما):چشمک:

mic_r_c
شنبه 22 اسفند 1388, 11:15 صبح
سلام،
رشيد ميگم ميتوني نسخه انگليسي اين مقايسه رو هم بنويسي؟ يا خودم بايد ترجمه كنم.
آخه اين كلاس مصرف كننده عربي هم داره و همينطور ميخوام برنامه رو تو سايت codeProject هم بذارم. ولي يك ايميلي، سايتي، وبلاگي، يه چيزي براي تماس بنويس توش.

مرسي

rashid1368
شنبه 22 اسفند 1388, 11:38 صبح
سلام
اگه بتونی خودت زحمتش رو بکشی ممنون میشم
اصولا برای بجه های رشته کامپیوتر ترجمه متون انگلیسی به فارسی راحت تره تا ترجمه متون فارسی به انگلیسی
در کل من خودم به شخصه منتظر pdf انگلیسی هم هستم

mahdi68
چهارشنبه 01 اردیبهشت 1389, 12:12 عصر
سلام
اولا بابت زحمتی که کشیدین به نوبه ی خودم تشکر میکنم
من دیشب شروع کردم که از لایبرری شما استفاده کنم ولی با خوندن این 3 صفحه موفق نشدم یعنی هنوز نگرفتم که چی به چی هست !!!!
من سورس اون مثالی که گذاشتید خوندم ولی متوجه نشدم اون متنی که هنگام اجرا برنامه نشون داده میشه کجا وارد کردین ؟؟؟
SFCR چی هست ؟؟؟؟
تو سورس برنامه یه فایل هست با پسوند vmd کلا این فایل چی هست و چه کاری انجام میده ؟؟؟
card_writer برای چه چیزی استفاده میکنید ؟؟؟ داکیومنت خوندم ولی چیزی دستگیرم نشد !!!
متشکرم

mic_r_c
چهارشنبه 01 اردیبهشت 1389, 19:04 عصر
سلام,
کلاس NTL_font با unicode کار نمیکنه، بلکه با یک سری کد های از پیش پردازش شده کار میکنه که NTL_CODEC نام دارند. نرم افزاری که کار پردازش متون UNICODE رو انجام میده cardWriter نام داره. خروجی این برنامه میتونه به صورت یک آرایه از نوع char باشه، مثل:
char[] text = {121,232,21,34,76,73,45,243};
یا میتونه به صورت یک فایل فشرده SFCR باشه. اگر با پسوند فایلش حال نمیکنی، بذارش mahdi، چه فرقی میکنه، اصل محتواشه، که اون هم در واقع همون مقدار آرایه است. فایلش رو به صورت Resource میخونی، و اطلاعاتش رو با NTL_font.write() نمایش میدی.

بقیه کاراش هم در داخل پست های قبلی آمده.

در مورد فایل های VMD خیلی نمیدونم. ماله خود NetBeans

موفق باشی

mahdi68
چهارشنبه 01 اردیبهشت 1389, 23:22 عصر
واقعا دستتون درد نکنه خیلی عالی هست
من قبلا با لایبرری آقای جوانشیر کار کرده بودم به خاطر همون فکر میکردم که متن تو برنامه باید وارد کرد !!!
اندازه فونت چه جوری میشه تغییر داد ؟؟؟
من با برنامه فونت ساز هر فونتی که میسازم هنگام اجرا برنامه این خطا میده

Null Pointer java/lang/Null Pointer

mic_r_c
پنج شنبه 02 اردیبهشت 1389, 09:54 صبح
سلام،
روش ساخت فونت رو هم توضیح دادم که!
برنامه font maker دقیق کار نمیکنه، فقط یک عکس از فونت تولید میکنه، بعد با قوانینی که گفتم باید علامت گذاریش کنی.

فعلا با همین 2 تا فونت tahoma کار کن تا حسابی وارد بشی، درضمن من خودم چند تا فونت دیگه میذارم اینجا.
موفق باشی

mahdi68
جمعه 03 اردیبهشت 1389, 13:48 عصر
سلام
بله من هم با همون توضیح سعی کردم فونت جدید بسازم که موفق نشدم !!!! عکسی که تولید میشه نصفش خالیه !!!! نمیدونم چرا اینتور میشه ؟!؟!؟!؟
ممنون میشم فونت های بیشتری بزارین
من سورس سفریاب نگاه کردم اونجا هم توضیحات با فونت شما بود ولی هرجا به فونت بزرگتری احتیاج هست از تصویر استفاده کردن

mic_r_c
یک شنبه 26 اردیبهشت 1389, 20:42 عصر
سلام،
اینم همون کلاس های فارسی ساز با زبان J2ME که در C#‎ نوشته شده بودن!

درد اخل فایل rar یه فایل exe برای تبدیل متن Unicode به مقادیر unicode است. مثلا "ظ" به " \u1234". از این برنامه برای تبدیل متون به مقادیر Hex میتونید استفاده کنید تا برنامه موبایلتون با مشکل مواجه نشه!

یک برنامه نمونه هم برای امتحان کلاس J2ME در داخل فایل Rar هست که در داخل بسته NTLfont_codeGen دو تا کلاس وجود داره:

1 کلاس NTLcode_gen برای تبدیل Unicode به NTLcodec. برای این کار تنها کافیست از یکی از متد های make_code_bytes و یا make_code ویا make_code_char بر اساس نیازتون استفاده کنید. make_code_bytes مقدار ی از نوع string را به صورت ورودی دریافت نموده و NTL_codec را به صورت آرایه از نوع بایت باز می گرداند. make_code_char نیز NTL_codec را در قالب آرایه ای از نوع char باز میگرداند و make_code آرایه ای ازنوع int.

2- کلاس NTLcodes_to_utf8 برای تبدیل اطلاعات NTLcodec به مقادیر UTF-8: تنها کافیست از متد Convert_to_unicode استفاده نمایید. از این متد برای جستجو یک رشته در داخل رشته دیگر استفاده میشود و مشکل جستجو را در NTLfont حل می نماید.

متد دیگری در داخل این کلاس وجود دارد که correct_chars نامیده می شود. از این متد برای استاندارد سازی اطلاعات String قبل از تبدیل آن به NTL_codec استفاده شده و از چاپ شدن کاراکتر نا خواسته "ض" جلو گیری می کند.

با کلاس SVC هم که شما سر و کار ندارید و برای تبدیل انواع به یک دیگر استفاده می شود.

همتون از یک کنار موفق باشید
ایستک منم یادتون نره :لبخند:

tech1400
دوشنبه 24 خرداد 1389, 18:59 عصر
این کلاس با j2mepolish کار نمی کنه لطفا راهنمایی کنین

mic_r_c
دوشنبه 24 خرداد 1389, 22:01 عصر
سلام
مگر باید کارکنه؟
اگر با polish کار میکرد که الان من آلمان بودم! :لبخند:

lyrebird
پنج شنبه 17 تیر 1389, 17:53 عصر
خیلی ممنون به خاطر اینکه علم و تجربیات خودتون رو رایگان در اختیار دیگران قرار میدین:لبخندساده: واقعا تحسین برانگیزه :تشویق:
من همین امروز این مطالب رو خوندم. می خواستم بدونم با این روش میشه متن ورودی کاربر رو هم به صورت فارسی و با فونت دلخواه و بدون ایراد دریافت کرد؟ یعنی داخل TextField هم میشه این فونت رو اعمال کرد؟
ممنونم

mic_r_c
جمعه 18 تیر 1389, 08:46 صبح
بله چرا نشه!
در چند پست بالا تر، کلاس های مبدلی رو جهت همین کارهاقرار دادم. این کلاس ها unicode رو به ntl_code و بلعکس تبدیل میکنند.

rashid1368
جمعه 18 تیر 1389, 17:54 عصر
سلام به همه دوستان برنامه نویس خودم مخصوصا آقای حسینی
یه سوال داشتم
آیا با این فونت شما می شه داخل برنامه یه متنی رو نوشت و چاپ کرد.... یه مثال ساده بزنم.... مثلا زمان فعلی گوشی رو میشه با فونت شما نشون داد.....
پیشاپیش متشکر از توجه شما......................

mic_r_c
شنبه 19 تیر 1389, 08:43 صبح
سلام
لطفا پست های قبلی رو بخون. ما برای نوشتن متون فارسی باید از اطلاعات char تحت عنوان ntl-code استفاده کنیم.
در 4-5 پست بالاتر (صفحه قبل)کلاس هایی رو ارائه دادم که البته دارای مثال هم هست.
توی اون مثال ما اطلاعات رو از unicode به ntl_code به طور مستقیم در داخل گوشی تبدیل میکنیم.( بدون نیاز به برنامه PC)

alireza323
شنبه 19 تیر 1389, 12:11 عصر
سلام،ممنون که به سوالات بچه ها جواب میدین،واقعا لایبرری که نوشتین عالیه
یه سوال دارم،میشه در مورد این که چطور میشه از کاربر متن فارسی رو در چیزی مثل textfield با استفاده از لایبرری شما دریافت کرد کمی بیشتر توضیح بدین؟
ممنون

mic_r_c
یک شنبه 20 تیر 1389, 09:09 صبح
سلام
برگردم مشهد یک مثال ساده میذارم.
با مبایل بیشتر از این نمیشه.

tech1400
پنج شنبه 31 تیر 1389, 19:11 عصر
سلام آقای حسینی
میشه یه فونت با سایز بزرگتر روی سایت بزارید
من نتونستم از نرم افزار فونت ساز شما استفاده کنم.

mic_r_c
جمعه 01 مرداد 1389, 12:33 عصر
سلام
7 مرداد کنکورمه، بعدش چشم حتما این کار رو انجام میدم!

دعا کنید برای همه کنکوری ها!

D.A.V.O.O.D
پنج شنبه 07 مرداد 1389, 01:36 صبح
سلام عرض می کنم خدمت افشین حسینی عزیز و دیگر دوستان این فوروم .
افشین جان لایببری شما را تقریبا تست کردم ، واقعا لذت بردم از چاپ متنش ! خصوصا وقتی یه متن فارسی را بغل یه متن انگلیسی گذاشتم و نتیجه اش را دیدم !
واقعا ممنونم ازت و اینکه واقعا این کارت شایسته تقدیره که بدون هیچ چشمداشتی ( فقط ایستک :لبخند: ) این لایببری را خصوصا به صورت اوپن سورس ارائه کردید .:قلب:

من جسارت کردم و یکم سورس شما را دستکاری کردم و یه function به کلاس font اضافه کردم که دیگه دوستان راحت متنشون را به صورت String و به صورت معمولی به برنامه بدن تا واسشون چاپ کنه و لایببری را compile کردم تا دوستان فقط با اضافه کردن فایل jar به راحتی بتونند از این لایببری ارزشمند استفاده کنند ، سورس لایببری ( بعد از تغییرات ) و یک سورس به همراه یک مثال که با لایببری کامپایل شده به صورت jar نوشته شده را برای دوستان آپلود می کنم ( هر کاری کردم توی سایت آپلود نشد ) تا بتونند استفاده کنند ( فایل jar لایببری توی مثال هستش )

فقط میشه گفت دو مشکلی که من مشاهده کردم یکی توی نمایش حرف " ی " بود ، البته زمانی که این حرف را به صورت Shift + X وارد می کنی ، مشکلی نیست ، اما در غیر اون صورت جای این حرف " ؟ " نشان داده میشه . که اگه شما برایش راه حلی دارید ؛ بگید که این مشکل را نیز رفع کنیم ، البته خودمم تلاش می کنم . :لبخندساده:

و دیگری هم توی ساخت فونتش بود ، اگه لطف کنید و کمی در مورد ساخت فونتش هم توضیح بدی ، لطف خود را به ما کاملا تکمیل کردید . :خجالت:

در پایان جا داره از این کار شما دوباره تقدیر کنم و همین جا یه آرزویی کنم و اونم اینکه انشالله این فرهنگ بین همه ما ایرانیا جا بیافته و صد البته استفاده کنندگان ، که حق کپی رایت سازنده را حفظ کنند .

موفق باشید :قلب:


http://www.fadesign.ir/NTL_Font_LIBRARY_Source.zip
http://www.fadesign.ir/NTLFont_Sample.zip

mic_r_c
پنج شنبه 07 مرداد 1389, 11:50 صبح
سلام،
میدونی، از ایستک 2 چیز خوش مزه تر هم وجود داره:

1- قبول شدن در کنکور کارشناسی، که خیلی سخت بود! (انشاالله)
2- اینکه یک نفر در برنامه متن بازت تغییرات بوجود بیاره و در اختیار دیگران قرار بده.

من واقعا خوشحال شدم که بالاخره یکی در دل این کلاس دست برد. البته این یکی فارسی نویس هم قدیمی شد و نسخه بعدی با یک سری تغییرات اساسی و مهندسی تر در راهه.

گرچه روش ساخت فونت رو هم در پست های قبلی توضیح دادم، ولی چشم، یک مرتبه دیگه با جزییات بیشتر توضیح میدم. البته اگر وقت کنم یک برنامه کاملا دقیق تر هم میسازم.

D.A.V.O.O.D
پنج شنبه 07 مرداد 1389, 13:11 عصر
سلام،
این که قصد دارید این لایببری را آپدیت کنید ؛ می تونه خبر خیلی خوبی باشه .
فقط چند تا پیشنهاد داشتم واسه ورژن بعدی ، یکی اینکه یه function بهش اضافه کنی مثلا setFont که در حین کار باهاش بتونیم از چند تا فونت ، هنگام نوشتن استفاده کنیم ( البته میشه یه شی دیگه ایجاد کرد با فونت دیگه ، اما خوب همانطوری که مشخص هست اگه بشه روی همون شی ، فونت را تغییر داده ، بهینه تر و حافظه Heap کمتری هم اشغال میکنه )

و دیگری هم اینکه اگه بشه ، فونت تولید شده را طوری کرد که خود سیستم از یک فایل ، هم png را بخونه و هم طول کاراکتر هارو ، خیلی بهتر میشه ( مثل همان لاییبری معروف Polish )

قسمت مهم این لایببری هم فونت میکرش هست ، در واقع میشه به جرات گفت که لطف لایببری به ساخت فونتشه که خیلی مهمه ! لذا اگه لطف کنی یه وقتی هم روی این مسئله بگذاری ، ممنونت میشیم .

در آخر هم اگه کمکی از دست من و دوستان بر می یاد ، ازمون دریغ نکنید .

انشالله توی کنکورتون هم قبول بشید ( واسه منم امسال باید از این دعا ها کنید :لبخند: )

mic_r_c
پنج شنبه 07 مرداد 1389, 18:14 عصر
دقیقا من هم به همین مسائلی که فرمودید فکر کردم، به علاوه یه سری توابع دیگه مثل، قرار دادن تصویر در بین خط، نه بین خطوط، هایلایت و تغییر رنگ متن، لیک کردن متن و گزارش کلیلک روی یک قسمت از متن و ...

ورژن بعدی رو فکر کنم در آبان تموم کنم. توی تابستون یه عالم پروژه رو سرمون ریخته! :افسرده:

برای همه کنکوری ها دعا میکنم. اگر بریم سربازی دیگه هرچی تو سرمونه از سرمون میپره!

hanieh_zakeri
سه شنبه 02 شهریور 1389, 12:55 عصر
ممنون از شما آقای حسینی.

trustmiracle
چهارشنبه 03 شهریور 1389, 16:56 عصر
من با چاپ عکس بین خطوط مشکل دارم. ممنون میشم اگر کسی از دوستان توضیح بده. گفته بودید باید برای این کار بین متون تگ قرار داد. من متن مثال اول خودتون که در انتهاش یک عکس هم داشت با لایبراری که برای تبدیل کدک ها به utf قرار دادید. برگرداندم. ولی هیچ تگی ندیدم.

اگر میشه یکم در مورد ساختار تگ هم توضیح بدین

موفق باشید.

hanieh_zakeri
پنج شنبه 04 شهریور 1389, 11:42 صبح
سلام.
راستش من تونستم از برنامه استفاده کنم اما با کار با فایل مشکل دارم. من قبلا کار با فایل انجام دادم اما نمی تونم توی برنامه آقای حسینی چطوری باید اطلاعات رو توی فایل ذخیره کنم .برنامه آقای داوود هم نمی شه با فایل کار کرد.

trustmiracle
پنج شنبه 04 شهریور 1389, 15:27 عصر
من با اجازه آقای حسینی یک کلاس به لایبراریشون اضافه کردم که یک خورده کار باهاش راحت تر بشه.
برای نوشتن فونت کافیه به جای ساخت شیئ از روی کلاس Font از روی کلاس easyFont بسازید. با همون پارامتر های قبلی.



easyFont eFont=new easyFont("/hello/1.png", character_bounds);

حالا هرجا خواستید متنی بنویسید از دستور زیر استفاده کنید



eFont.AppendText("من می توانم");


و هر جا خواستید یک عکس اضافه کنید از دستور زیر که پارامتر اول آن شی ای از نوع Image، پارامتر دوم نام عکس و پارمتر سوم هم alignment عکس هست



eFont.AppendImage(Image, Text, eFont.pic_Middle)

این توابع هیچ کدوم چیزی چاپ نمی کنه. فقط بافر می کنه. هر فقط خواستید متن و عکس هایی که اضافه کردین چاپ بشه از دستور رایت استفاده کنید. این دستور دقیقا همون تابع write قبلی هست با این تفاوت که دیگر آرایه ای کاراکتری نمی گیره. چون توسط دستورات قبلی رشته ورودیش را دریافت کرده.

موفق باشید

mhd33pol
جمعه 05 شهریور 1389, 19:25 عصر
با عرض سلام به تمامی عزیزان مخصوصا ً افشین جان که برای دنیا و آخرتش آرزوی خیر و کمال میکنم. :لبخندساده:
تقریبا ً همه ی پست ها رو به دقت خوندم و ضمیمه های لازم رو هم دانلود کردم و کمی هم سورس ها رو مطالعه کردم و با اینکه روزه بودم ولی گذر زمان رو متوجه نشدم.
کار واقعا ً بی نظیریه. در آینده مطمئنا ً به دقت تستش خواهم کرد.
اما یه سوالی برام پیش اومد و اونم این که چرا از NTL_codec استفاده شده؟
اگه از همون اول از unicode استفاده میشد بهتر نبود؟ که دیگه برای کارهایی مثل گرفتن متن از کاربر در حین اجرا مجبور به تبدیل نباشیم؟ و اینکه آیا این تبدیل سرعت رو کاهش نمیده مخصوصا ً برای جستجو در متون؟
و سوال دیگه اینکه اگه من به عنوان مثال بخوام همه ی کاراکترها رو با همون رنگ پیش فرض ، یعنی مشکی ، چاپ کنم ولی همه جای برنامه علامت سوال و علامت تعجب رو قرمز چاپ کنم ، چه راه حلی پیشنهاد میکنید؟
چیزی که فعلا ً به ذهنم میرسه اینه که فایل png رو با فوتوشاپ ویرایش کنم و این دو کاراکتر رو قرمز کنم. که البته باید سر فرصت تست کنم یا اگه شما نظری دارید بهم بگید.
بازهم ازتون از صمیم قلب تشکر میکنم و الان که نزدیک افطاره بازهم دعا میکنم خیر دنیا و آخرت رو ببینی. :چشمک:

mhd33pol
جمعه 05 شهریور 1389, 19:42 عصر
راستی یه نکته ی مهم دیگه!
من برنامه ای که به عنوان نمونه توی فایل rar گذاشتید رو تست کردم.
اشکالی که هست اینه که با گوشی لمسی سازگار نیست. به عنوان مثال اگه برنامه ی آرمان شهر رو دیده باشید:

http://www.xpm.ir/main/index.php?option=com_content&view=article&id=63:1389-01-26-21-01-02&catid=45:products&Itemid=68
کاملا ً با گوشی لمسی سازگاری داره.
اما برنامه ی شما مثلا ً scroll را با لمس انجام نمیده. ضمن اینکه اون دکمه ی close که گذاشتید ، توی گوشی لمسی کار نمیکنه. البته من برنامه رو توی گوشی غیر لمسی هم تست کردم ولی اگه اشتباه نکنم بازهم اون دکمه کار نمیکرد.

tech1400
شنبه 06 شهریور 1389, 19:16 عصر
سلام آقای حسینی
من با استفاده از لایبرری شما یه برنامه نوشتم.تو شبیه ساز اکثر گوشیها خوب کار می کنه ولی وقتی تو خود گوشی برنامه رو نصب می کنم. تو warp کردن متن مشکل داره .البته warp میشه ولی تعداد کلمات بیشتری در یک سطر قرار می گیره و این باعث کوچک شدن سایز متن میشه.مثلا در n95 شش کلمه در یک سطر قرار می گیره ودر k800 هم شش کلمه.

D.A.V.O.O.D
یک شنبه 07 شهریور 1389, 21:28 عصر
راستی یه نکته ی مهم دیگه!
من برنامه ای که به عنوان نمونه توی فایل rar گذاشتید رو تست کردم.
اشکالی که هست اینه که با گوشی لمسی سازگار نیست. به عنوان مثال اگه برنامه ی آرمان شهر رو دیده باشید:

http://www.xpm.ir/main/index.php?option=com_content&view=article&id=63:1389-01-26-21-01-02&catid=45:products&Itemid=68کاملا ً با گوشی لمسی سازگاری داره.
اما برنامه ی شما مثلا ً scroll را با لمس انجام نمیده. ضمن اینکه اون دکمه ی close که گذاشتید ، توی گوشی لمسی کار نمیکنه. البته من برنامه رو توی گوشی غیر لمسی هم تست کردم ولی اگه اشتباه نکنم بازهم اون دکمه کار نمیکرد.

سلام ، با اجازه ی آقا افشین ، من پاسخ شما را می دم .
اضافه کردن عملکرد لمسی ربطی به لایببری نداره ! آقا افشین اونو ساخته تا واسه اسکرول روش کار را توضیح داده باشه ، اضافه کردن عملکرد لمسی به عهده خود شما می باشد .

mhd33pol
چهارشنبه 10 شهریور 1389, 19:29 عصر
توی تستی متوجه شدم ، برنامه به جای چاپ "ـة" (یعنی تاء گرد) حرف "ض" رو چاپ میکنه.

mhd33pol
چهارشنبه 10 شهریور 1389, 19:46 عصر
و نکته ی دیگه اینکه یک متن چند خطی رو وقتی با حرکتها (فتحه و کسره و تشدید و ضمه و ...) مینویسی برنامه توی محاسبه ی طول یک خط اشتباه میکنه و زود به خط بعد میره. در صورتی که گاها ً نصف خط خالی میمونه.
به عنوان مثال شما اگر ابتدا متن زیر که همراه با حرکات هست رو اجرا کنید :
بِسم ِالله الرّحمن ِ الرّحیم
اَللّهمّ کُن لِولیّکَ الحُجَتِ ابن ِ الحَسَن صَلَواتُکَ عَلیه وَ عَلی آبائِه فی هذهِ السّاعتِ و فی کلِّ ساعَتِ ولیّاً و حافِظاً و قائِداً و ناصِراً و دَلیلاً و عَیناً حتی تُسکِنَه ارضَکَ طَوعاً و تُمَتِعَه فیها طَویلاً

و بعد همین متن رو بدون حرکات در برنامه اجرا کنید :
بسم الله الرحمن الرحیم
اللهم کن لولیک الحجت بن الحسن صلواتک علیه و علی آبائه فی هذه الساعت و فی کل ساعت ولیا و حافظا و قائدا و ناصرا و دلیلا و عینا حتی تسکنه ارضک طوعا و تمتعه فیها طویلا

تفاوت را مشاهده خواهید کرد. فکر کنم اشکال از اینه که برای حرکاتی که گفتم و تنوین هایی مثل " ً " و " ٌ " و امثال اینها توی محاسبه ی طول خط نباید اعمالشون کنیم چون در واقع تاثیری توی اون ندارن. اگه اشتباه نکنم توی یکی از پستها گفته بودید این برنامه مشتری عرب هم داره که در این صورت این یک نقطه ضعف حساب میشه. البته من هم توی برنامم میخواستم قسمتیش رو عربی کار کنم که نمیدونم چکار کنم. :لبخندساده:

mic_r_c
یک شنبه 14 شهریور 1389, 09:14 صبح
سلام
از همه متشکرم!
این روز ها روی یه پروژه کار میکنم که تمام وقتم رو گرفته!

فارسی ساز فعلی مشکلات بسیار زیادی داره! همون طور که خودتون هم مشاهده کردید!

چون برنامه از اول دارای اشکالات پایه ای بوده!
البته دیگه زمانش رسیده که فارسی نویس کامل رو طراحی کنم و تمام مشکلات رو از بین ببرم و امکانات جدید رو اضافه کنم.

توی آبان یا اوایل آذر نسخه کامل تموم میشه!

----
به MHD33POL : کاراکتر ها در این ورژن نمیتونن دارای رنگ مخصوص به خودشون باشن. دستکاری با فتو شاپ هم بی فایده است.
این مورد هم در ورژن نهایی درست میشه!

البته دوستان میتونن از فارسی ساز "روان نویس" در وب سایت GSM ARIA استفاده کنند. که ظاهرا هم خیلی بهتره. البته فکر کنم پولی باشه!
دقیق نمیدونم!

متشکرم!

hanieh_zakeri
یک شنبه 14 شهریور 1389, 11:09 صبح
من با اجازه آقای حسینی یک کلاس به لایبراریشون اضافه کردم که یک خورده کار باهاش راحت تر بشه.
برای نوشتن فونت کافیه به جای ساخت شیئ از روی کلاس Font از روی کلاس easyFont بسازید. با همون پارامتر های قبلی.



easyFont eFont=new easyFont("/hello/1.png", character_bounds);

حالا هرجا خواستید متنی بنویسید از دستور زیر استفاده کنید



eFont.AppendText("من می توانم");


و هر جا خواستید یک عکس اضافه کنید از دستور زیر که پارامتر اول آن شی ای از نوع Image، پارامتر دوم نام عکس و پارمتر سوم هم alignment عکس هست



eFont.AppendImage(Image, Text, eFont.pic_Middle)

این توابع هیچ کدوم چیزی چاپ نمی کنه. فقط بافر می کنه. هر فقط خواستید متن و عکس هایی که اضافه کردین چاپ بشه از دستور رایت استفاده کنید. این دستور دقیقا همون تابع write قبلی هست با این تفاوت که دیگر آرایه ای کاراکتری نمی گیره. چون توسط دستورات قبلی رشته ورودیش را دریافت کرده.

موفق باشید




سلام. برای استفاده از اسپرایت چی ؟ هیچ مشکلی نداره؟؟راستش می خواستم بدونم چرا وقتی یه جمله می نویسیم و بعد میخوایم از چند تا اسپرایت و عکس خارج از نوشته استفاده کنیم مشکل ایجاد می شه و باید از توابع ntl-font استفاده کرد؟

trustmiracle
یک شنبه 14 شهریور 1389, 13:21 عصر
سلام. برای استفاده از اسپرایت چی ؟ هیچ مشکلی نداره؟؟
سلام. اسپرایت نمی دانم چیه. ممنون میشم اگر توضیح بدین


راستش می خواستم بدونم چرا وقتی یه جمله می نویسیم و بعد میخوایم از چند تا اسپرایت و عکس خارج از نوشته استفاده کنیم مشکل ایجاد می شه و باید از توابع ntl-font استفاده کرد؟

چه مشکلی؟ اگر منظورتون اینه که متون قبلی دوباره چاپ میشه به خار این هست که هنگام چاپ بافر را خالی نمی کنه. اون دوتا وکتور را تو تابع چاپ خالیش کنید.

hsaleh120
پنج شنبه 18 شهریور 1389, 16:29 عصر
اولا از این کد که گذاشتین متشکرم
من می خوام این فونت دوبرابر بشه برای همین فایل فون را تو فوتوشاپ دو برابر کردم یعنی از 3715*19 به 7430*38 تغییر دادم و داخل کدم هم اندازه هر خانه آرایه character_bounds را در 2 ضرب کردم ولی دیگه برنامه اجرا نمیشه لطفا راهنمایی کنید
با تشکر فراوان

omid3g
سه شنبه 14 دی 1389, 10:07 صبح
salam
az poste mashtitun mamnoon kheily hal dad

omid3g
جمعه 17 دی 1389, 01:21 صبح
با سلام آقا افشين نگفتي تندازه فونت رو چه جوري ميشه تغيير داد يعني اينكه كاربر هر موقع مثلا كليد # رو زد هر بار اندازه فونت تغيير كنه:بوس:
راستي بي زحمت زود جواب بدين كه درگيرم :متفکر: ممنون

kzzk84
شنبه 28 اسفند 1389, 11:57 صبح
سلام عرض می کنم خدمت افشین حسینی عزیز و دیگر دوستان این فوروم .
افشین جان لایببری شما را تقریبا تست کردم ، واقعا لذت بردم از چاپ متنش ! خصوصا وقتی یه متن فارسی را بغل یه متن انگلیسی گذاشتم و نتیجه اش را دیدم !
واقعا ممنونم ازت و اینکه واقعا این کارت شایسته تقدیره که بدون هیچ چشمداشتی ( فقط ایستک :لبخند: ) این لایببری را خصوصا به صورت اوپن سورس ارائه کردید .:قلب:

من جسارت کردم و یکم سورس شما را دستکاری کردم و یه function به کلاس font اضافه کردم که دیگه دوستان راحت متنشون را به صورت String و به صورت معمولی به برنامه بدن تا واسشون چاپ کنه و لایببری را compile کردم تا دوستان فقط با اضافه کردن فایل jar به راحتی بتونند از این لایببری ارزشمند استفاده کنند ، سورس لایببری ( بعد از تغییرات ) و یک سورس به همراه یک مثال که با لایببری کامپایل شده به صورت jar نوشته شده را برای دوستان آپلود می کنم ( هر کاری کردم توی سایت آپلود نشد ) تا بتونند استفاده کنند ( فایل jar لایببری توی مثال هستش )

فقط میشه گفت دو مشکلی که من مشاهده کردم یکی توی نمایش حرف " ی " بود ، البته زمانی که این حرف را به صورت Shift + X وارد می کنی ، مشکلی نیست ، اما در غیر اون صورت جای این حرف " ؟ " نشان داده میشه . که اگه شما برایش راه حلی دارید ؛ بگید که این مشکل را نیز رفع کنیم ، البته خودمم تلاش می کنم . :لبخندساده:

و دیگری هم توی ساخت فونتش بود ، اگه لطف کنید و کمی در مورد ساخت فونتش هم توضیح بدی ، لطف خود را به ما کاملا تکمیل کردید . :خجالت:

در پایان جا داره از این کار شما دوباره تقدیر کنم و همین جا یه آرزویی کنم و اونم اینکه انشالله این فرهنگ بین همه ما ایرانیا جا بیافته و صد البته استفاده کنندگان ، که حق کپی رایت سازنده را حفظ کنند .

موفق باشید :قلب:


http://www.fadesign.ir/NTL_Font_LIBRARY_Source.zip
http://www.fadesign.ir/NTLFont_Sample.zip

درود بر دنیای سورس باز:تشویق:(البته اگه جنبش رو داشته باشیم:متفکر:)
مثه اینکه لینک ها وجود نداره:متعجب:
اگه امکان داره این فایل ها رو دوباره بذارید ممنون از همگی:گریه:

mic_r_c
سه شنبه 02 فروردین 1390, 10:26 صبح
سلام،
خوبین؟
خوشین؟
سلامتین؟
میزونین؟

اینم فونت ساز که به کمک دوست عزیزم جناب مهندس جلال امینی ساخته شده...!
این برنامه با دات نت 3.5 است، و کلا دارای چند تا تنظیم ساده یه :
1- از دکمه font برای تعیین font استفاده میشه... ( نه پس میخواستی برات آپولو هوا کنه :قهقهه: )
2- از دکمه Ident برای تعیین فاصله کاراکتر ها نسبت به هم استفاده می کنید... در ضمن قابلیت ذخیره و بازیابی این IDENT ها هم وجود داره، البته در پوشه Font samples علاوه بر چند تا فونت، یک Ident استاندارد هم قرار دادیم.
3- یه Check box هم هست که جلوش نوشته Enable Antialising که بله دیگه.... دور کاراکتر ها رو براتون خوجگل میکنه....
4- رو دکمه Save هم که کلیک کنید، براتوم یک فایل شامل اطلاعات فونت، با پسوند mf تولید میکنه....


تو کلاس NTL_font هم که یک تابع به نام LoadFont() وجود داره که نام فایل و یا Stream همون فایل mf رو میخواد. بقیش هم که مثه قبلی هاست...
در ضمن پکیج NTLfont_codeGen رو هم جای گذین قبلی کنید. با حال تره....

دیگه....... :متفکر:

آها یک کلاس linearwriter هم اضافه شده که برای نوشتن متن یک خطی کار میکنه، کاربردس برای ساخت منو ها به همراه اسکرول متن و ..... و البته سرعتشم خیلی بالا تره...

سرعت بار گذاری و تغییر فونت رو هم خودتون چک کنید، اونقدر بالا هست که توی یک برنامه چند تا فونت رو داشته باشین...

دیگه....
آها، استفاده از NTL_font در هرگونه پروژه ای مجازه، و به سازندگانش هیچ ربطی نداره که تو چه جور پروژه ای استفاده میکنید، و ما هیچ مسئولیتی نداریم. باز فردا کسی نگه این کتابخونه ماله فلانیه و ....

در ضمن چند نفری سوال کردن واسه استفاده تو برنامه های تجاری و پرسیدن حلاله....
والا ما این کتابخونه رو از گلو و با دست زبح کردیم، دیگه نمیدونم قبلش چی خورده بوده، محض احتیاط 40 روز بذارینش زیر آفتاب....

mic_r_c
سه شنبه 02 فروردین 1390, 12:07 عصر
درضمن مدتیه که میخوام نسخه نهایی این سیستم فارسی نویس رو کامل و کنم و واسه همیه بذارمش کنار. البته قصد کردم این کار رو تو تابستون انجام بدم، چون بیش از اندازه سرم شلوغ شده....!
اگر کسی تمایل به همکاری داره به من یک میل بزنه، تا ببینم چی میشه....

afshin.hoseini@gmail.com

مرسی

dr_jacky_2005
پنج شنبه 19 خرداد 1390, 09:53 صبح
شاید باورتون نشه ولی من همه پست هارو خوندم،الآن نمیدونم باید از کدوم ضمیمۀ پست استفاده کنم؟
نمیدونم چطوری استفاده کنم؟آیا باید کامپایل کنم،لایبراریش کنم،بعد استفاده کنم؟
اون برنامه های سی شارپی رو کی استفاده کنم؟
اون نسخه ای که یکی از دوستان آماده کردند که گفتند دیگر لازم نیست SRF رو توی پی سی بسازیم،آیا نسخۀ آخر آقا افشین،همین پست بالایی رو دستکاری کردن؟
اون داکیومنتی که میگفتین،اصلا توی فایل ها نبود!
راستی،اینم بگم که جاهایی دارن کار شما رو میفروشن.گفتم بگم،اینجام گیر کرده بود.واقعا حرصم درومده:عصبانی:

dr_jacky_2005
پنج شنبه 19 خرداد 1390, 10:57 صبح
راستی شما لطف کردین و برای اولین ورژن یک مثال هم دادین،ولی این نسخۀ جدید نداره.
میشه یک مثال هم با این پکیج جدیده برامون بزارین؟

dr_jacky_2005
پنج شنبه 19 خرداد 1390, 11:30 صبح
مشکل:
من از نسخۀ شماره دویی که دادین دارم استفاده میکنم.
ولی توی این قسمت که میرسه،گیر میکنه،و هیچ نوشته ای رو نمایش نمیده
>>>
در تابع GetImg
int len = NTL_chars_color_data[Ch].length;

ونمیتونه طول رو حساب کنه. null است.
trace که کردم،هیچی توی آرایۀ NTL_chars_color_data نیست. توو هیچ رنجیش نیت.( 0-99 و به بالا ) !
ایندکس آرایه هه هم 57 است.

وقتی تریس یه اونجا میره،این exception رو میده:
. length = > malformed exception : >"ERROR"<

توی watch هم میبینم،اینطوریه که
0-99 رو باز میکنم
[0] رو باز میکنم (بقیه نال هستند ولی این #409603(length=3399) )
بعد همه رنج های 0 تا 3398 پر هستند.

dr_jacky_2005
شنبه 21 خرداد 1390, 09:40 صبح
با تریس های بیشتر به اینجا رسیدم که:
توی این تابع:


private void loadFont(String font_file,int[] bounds)

وقتی روی idx++; BreakPoint میزارم، هی F5 رو میزنم،... میره میره، بعد که روی


catch(Exception e)
{


بریک میزارم،و بریک رو از روی idx برمیدارم،و F5 رو میزنم، میاد توی کچ!
و اینم مقدار e است:
IllegalArgumentException

پس در نتیجه طبق این تیکه کد:


idx++;
}
PAlpha = null;
System.gc();

template_font = new int[600];

for(int lp=0; lp<600; lp++)
template_font[lp] = 0x00000000;

}
catch(Exception e)
{

دیگه قسمت های آبی رنگ ( بعد از idx++ ) رو اجرا نمیکنه
واسه همین template_font نال میماند.


اینم بگم که این تریس دومی ( همین پست ) ، با کلاس font ورژن یک انجام دادما.
(البته فقط فونت رو از ورژن یک برداشتم، بقیه همون ورژن جدیده هستند ).ایرادی نگرفت از کلاسای دیگه،منم کاری نکردم.

فرض میگیریم که ارور این پستم،از همینه که نصفش از کلاس جدیدست و نصف دیگش از کلاس قدیمی....
قبول

مشکل پست قبلیم چی میشه!؟

dr_jacky_2005
شنبه 21 خرداد 1390, 09:48 صبح
دوستان مشکل از این نیود که کلاس فونتم ورژن قبلی بوده،کلاس های دیگم جدیده!
همه رو کردم قبلی،باز میره توی Catch!
:عصبانی++:

dr_jacky_2005
شنبه 21 خرداد 1390, 10:35 صبح
اینم اضافه کنم که در مورد این قسمت»


colored_points = new LIST();
cnt = 0;
for(i=0; i < len; i++ )
{
if(RGB[i] != omit)
{
colored_points.set_data(i);
cnt++;
}
}

NTL_chars_color_data[idx] = new int[cnt];

با تریس این رو فهمیدم که مقدارi از 239 به بعد ( تا آخر یعنی len =350 )
باعث میشه که بریم توی این if:


if(RGB[i] != omit)

mic_r_c
شنبه 21 خرداد 1390, 10:37 صبح
سلام،
1- من نمیگم این برنامه خیلی عالیه.... ولی قبل از شما خیلی دیگه از دوستان با این سیستم برنامه های تجاری نوشتن و برنامشون رو هم فروختن.
2- برنامه C# جهت نوشتن متن های بزرگ + عکس استفاده میشه.
3- فرق ورژن اول با دوم در سرعت نوشتن و سرعت لود کردن متنه. مثال های ورژن قبلی برای ورژن جدید هم کاربرد داره و در ضمن، برای تغییرات هر ورژن یک مثال ارائه شده.
4- از کاملترین نسخه ارائه شده استفاده کنید که روش بارگذاریه فونتش قوی تر و بسیار سریع تره.

یه نکته مهم اینه که ممکنه شما فایل و BOUND هایه فارسی نویس رو به تابع Loadfont ارائه ندادین، یا اینکه اشتباه ارائه دادین.
پیش نهاد بهتر اینه که یکبار دیگه با دقت پستها رو مطالعه نمایید، تک تک پیوست ها رو آزمایش کنید و این پست رو هم با دقت بخونید:
آخرین نسخه (http://barnamenevis.org/showthread.php?206223-%D8%B3%D9%8A%D8%B3%D8%AA%D9%85-%D9%81%D8%A7%D8%B1%D8%B3%D9%8A-%D9%86%D9%88%D9%8A%D8%B3-NTL_font&p=1279647&viewfull=1#post1279647)

در ضمن من مطمئنم اگر با دقت تمام پستها رو بخونید و آزمایش کنید، بیشتر از 4 ساعت زمان نمیگیره ولی در عوض، شما هم به راحتی میتونید از این سیستم رایگان برای رسیدن به اهدافتون استفاده کنید.

راستی: اگر کسی با این محصول برنامه تجاری بنویسه و کسب درآمد داسته باشه، مشکلی نداره ( حالا اگه واقعا راضی بود، خوش حال میشم واسم ایستک بگیره :خجالت: ) ولی اگر کسی خود کتابخانه فارسی نویس رو بدون هیچ تغییره حائز اهمیتی به کس دیگری بفروشد، حق دارد، چون خریدار زحمت یه جستجوی ساده را به خود نداده است.


بیشتر دقت کن، به جواب میرسی، اونقدرا هم NTL_Font بی در و پیکر نیست.... :چشمک:

mic_r_c
شنبه 21 خرداد 1390, 10:47 صبح
درضمن، قراره توی تابستون آخرین ورژن رو به کمک یکی از دانشجویانم تمام و در همین جا عرضه کنیم. در آخرین نسخه اکثر کاراکتر های عربی و فارسی و انگلیسی و علائم خاص و معمولی حمایت میشن. سرعت لود شدن و نوشتن به حد اکثر خودشون میرسن و برای همیشه در فارسی نویس NTL_Font بسته میشه.
و البته یک کتاب برای توضیح روش کار + تمامی الگوریتم های مورد استفاده هم به صورت الکترونیکی منتشر و به جامعه متن باز، تقدیم میشه.
:قلب:

dr_jacky_2005
شنبه 21 خرداد 1390, 10:53 صبح
4- از کاملترین نسخه ارائه شده استفاده کنید که روش بارگذاریه فونتش قوی تر و بسیار سریع تره.

من ازین دارم استفاده میکنم:
http://barnamenevis.org/showthread.php?206223-%D8%B3%D9%8A%D8%B3%D8%AA%D9%85-%D9%81%D8%A7%D8%B1%D8%B3%D9%8A-%D9%86%D9%88%D9%8A%D8%B3-NTL_font&p=1233778&viewfull=1#post1233778

دیدم نشد،اولین پست تاپیک رو هم استفاده کردم،بازم نمیشه
_________


یه نکته مهم اینه که ممکنه شما فایل و BOUND هایه فارسی نویس رو به تابع Loadfont ارائه ندادین، یا اینکه اشتباه ارائه دادین.

نه دیگه! اینطوری میدم:


private char[] MainUpText = {231,82,65,68,231,231,82,84,76,231,57,71,78,243,11 0,59,243,70,55,243,70,83,243,70,55,243,230,243,231 ,82,84,76,231};// </editor-fold>

public int colors[] = {0xff000000,0xfcff0000,0xff00ff00,0xff0000ff,0xfff fffff};

public font Series1;

Series1 = new font("/FNT/1.png",character_bounds);


پست هارو دونه دونه خوندم:افسرده:

mic_r_c
شنبه 21 خرداد 1390, 10:57 صبح
باشه، ظاهرا چاره ای نیست.... :چشمک:

لطفا برنامه ای رو که نوشتی به همراه پروژه برام میل کن.
ولی این روزها دارم برای امتحانات پایان ترم میخونم، قول نمیدک که سریع جواب بدم....

dr_jacky_2005
شنبه 21 خرداد 1390, 11:53 صبح
باشه، ظاهرا چاره ای نیست.... :چشمک:

لطفا برنامه ای رو که نوشتی به همراه پروژه برام میل کن.
ولی این روزها دارم برای امتحانات پایان ترم میخونم، قول نمیدک که سریع جواب بدم....
فرستادم

لطفا SPAM رو هم نگاه کنید...
فکر کنم رفته باشه اونجا
آخه تووش فارسی نوشتم

واقعا مرسی

پروژه ام نیست.
یه نمونه از مشکلم رو شبیه سازی مردم توی یک پروژۀ فوق الهاده کوچیک...
اگه بشه زود نگاش کنید،ممنونتون میشم

چون باید تا چند روز دیگه کار رو تحوبل بدم

مرسی

dr_jacky_2005
شنبه 21 خرداد 1390, 12:15 عصر
اما نكته مهم:
هر كاراكتر در زبان فارسي ممكن است بيش از يك حالت داشته باشد.
در هر حال 4 حالت كلي وجود دارد:
1 - حالت تنها، (alone)
2- كاراكتري كه از عقب مي چسبد به كاراكتر جلويي (prefix)
3- كاراكتري كه از جلو مي چسبد به كاراكتر عقبي (postfix)
4- كاراكتري كه از هر دو طرف به كاراكتر هاي عقب و جلو مي چسبد (midfix)

در حالت اول خطوط قرمز از سمت راست بايد كاملا روي اولين خط پيكسل كاراكتر باشد و خط دوم در سمت چپ بايد حدود 2 يا 3 پيكسل از آخرين خط پيكسلي كاراكتر فاصله داشته باشد.

در حالت دوم اوليم خط قرمز از سمت راستبايد كاملا روي اولين خط پيكسلي قرار گيرد و خط دوم نيز بايد دقيقا روي آخرين نقطه پيكسلي در سمت چپ باشد.

در حالت سوم اولين خط قرمز بايد دقيقا روي اولين نقطه پيكسلي كاراكتر در سمت راست قرار گيرد و خط قرمز بعدي بايد 2 يا 3 پيكسل از آخرين خط پيكسلي فاصله بگيرد.

در حالت چهارم خطوط قرمز بايد دقيقا روي نقطه هاي اول و آخر كاراكتر قرار بگيرند.

موفق باشيد!
من این قسمت رو نفهمیدم...!
مگه خود این برنامه اون خطوط رو نمیسازه!؟
چرا اینارو به ما میگید؟
مگه قراره ما این کارو کنیم؟

2- راستی،من ساختم عکس رو ( فونتم رو )، حالا چرا این عکس قسمت اضافه داره سمت راستش؟!
در صورتی که مثال فونت شما ( 1.png )
فیت است!

dr_jacky_2005
شنبه 21 خرداد 1390, 12:30 عصر
سلام،
براي استخراج تمامي تصاوير داخل متن تنها كافيه متن خود را كه به صورت آرايه اي از كاراكتر است، به همراه مسيري كه تمام تصاوير مورد نياز متون چند صفحه اي شما است را به عنوان پارامتر به تابع زير بدهيد. البته ابتدا بايد كلاس زير را به بسته NTLfonts اضافه كنيد.

روش استفاده از كلاس:

public void init_pictures()
{
PIC_page[] pics = (new Image_exctractor()).extract_Images(text, "");
ft.PIC_IMGs = pics;
}

من کاربرد این کلاس رو نفهمیدم!
خب یعنی چی؟!
عکس هارو بکشیم بیرون که چی؟

dr_jacky_2005
شنبه 21 خرداد 1390, 12:55 عصر
سلام عرض می کنم خدمت افشین حسینی عزیز و دیگر دوستان این فوروم .
افشین جان لایببری شما را تقریبا تست کردم ، واقعا لذت بردم از چاپ متنش ! خصوصا وقتی یه متن فارسی را بغل یه متن انگلیسی گذاشتم و نتیجه اش را دیدم !
واقعا ممنونم ازت و اینکه واقعا این کارت شایسته تقدیره که بدون هیچ چشمداشتی ( فقط ایستک :لبخند: ) این لایببری را خصوصا به صورت اوپن سورس ارائه کردید .:قلب:

من جسارت کردم و یکم سورس شما را دستکاری کردم و یه function به کلاس font اضافه کردم که دیگه دوستان راحت متنشون را به صورت String و به صورت معمولی به برنامه بدن تا واسشون چاپ کنه و لایببری را compile کردم تا دوستان فقط با اضافه کردن فایل jar به راحتی بتونند از این لایببری ارزشمند استفاده کنند ، سورس لایببری ( بعد از تغییرات ) و یک سورس به همراه یک مثال که با لایببری کامپایل شده به صورت jar نوشته شده را برای دوستان آپلود می کنم ( هر کاری کردم توی سایت آپلود نشد ) تا بتونند استفاده کنند ( فایل jar لایببری توی مثال هستش )

فقط میشه گفت دو مشکلی که من مشاهده کردم یکی توی نمایش حرف " ی " بود ، البته زمانی که این حرف را به صورت Shift + X وارد می کنی ، مشکلی نیست ، اما در غیر اون صورت جای این حرف " ؟ " نشان داده میشه . که اگه شما برایش راه حلی دارید ؛ بگید که این مشکل را نیز رفع کنیم ، البته خودمم تلاش می کنم . :لبخندساده:

و دیگری هم توی ساخت فونتش بود ، اگه لطف کنید و کمی در مورد ساخت فونتش هم توضیح بدی ، لطف خود را به ما کاملا تکمیل کردید . :خجالت:

در پایان جا داره از این کار شما دوباره تقدیر کنم و همین جا یه آرزویی کنم و اونم اینکه انشالله این فرهنگ بین همه ما ایرانیا جا بیافته و صد البته استفاده کنندگان ، که حق کپی رایت سازنده را حفظ کنند .

موفق باشید :قلب:


http://www.fadesign.ir/NTL_Font_LIBRARY_Source.zip
http://www.fadesign.ir/NTLFont_Sample.zip


لینک ها که کار نمیکنن!
برشون داشتین؟ :ناراحت:

dr_jacky_2005
شنبه 21 خرداد 1390, 14:08 عصر
میدونید کجای قضیه جالبه؟
این که من اون مثالی که داره واسم کار میکنه و از این تاپیک دانلود کردم ( همون که پسره دست به سینست ) ، رو عینش رو کپی کردم،هیچی نمایش نمیده.
( نه که بگیرم کلش رو کلیک راست کپی پیست ها، نه . یعنی یه پروژه ساختم،کلاس هارو تک تک عین اون نوشتم )

ولی چیزی نمایش نمیده!!!!!!!!!!!!!!!!!!!

dr_jacky_2005
شنبه 21 خرداد 1390, 14:41 عصر
اینم فونت ساز که به کمک دوست عزیزم جناب مهندس جلال امینی ساخته شده...!
این برنامه با دات نت 3.5 است، و کلا دارای چند تا تنظیم ساده یه :
1- از دکمه font برای تعیین font استفاده میشه... ( نه پس میخواستی برات آپولو هوا کنه :قهقهه: )


من این رو میزنم، فونت رو هم انتخاب میکنم.اوکی که میکنم،چیزی توی اون کادر نشون نمیده!

dr_jacky_2005
شنبه 21 خرداد 1390, 14:59 عصر
من بالاخره تونستم یه نوشته رو بیارم
چطور؟
از فونت ساز مهندس جلال امینی استفاده کردم...
چه فونتی ساختم؟
Tahoma 12 با اسکریپت وسترن.

مشکل کجاست؟
اینجا:
http://up.iranblog.com/images/apn24vq2j0q2qhmax9g0_thumb.png (http://up.iranblog.com/viewer.php?file=apn24vq2j0q2qhmax9g0.png)

dr_jacky_2005
شنبه 21 خرداد 1390, 15:22 عصر
در مورد این مشکلم که چرا عکس میزارم ( 1.پی ان جی ) چیزی نشون نمیده ولی mf میزارم،یه چیزایی نشون میده:

trace کردم،اینا رو دستگیرم شد که نوی مثال خود تاپیک ، توی این تابع :


private void loadFont(InputStream is)

وقتی روی charIdx++; بریک پوینت میزارم،میرسه بهش
ولی توی مثال خودم، ( که موو نمیزنه با این مثال دست به سینۀ فروم ) ، به charIdx++; نمیرسه.
و میره توی catch
و اینو میگه:
ArrayIndexOutOfBoundsException

________________________________
تریس رو دقیق تر کردم،دیدم که وقتی که readLinesCounter برابر با 26 میشود،
و
در

for(lp = 0; lp < pointsCnt; lp++, coloredPixelsCounter++)

مقدار lp برابر با 133 است،
میرسه به این خط:


NTL_chars_color_data[charIdx][coloredPixelsCounter] = (alpha | pixelPos);

با مشکل مواجه میشه
و میره توی catch که گفتم!!!!

dr_jacky_2005
شنبه 21 خرداد 1390, 16:11 عصر
هر کی میخواد لطف کنه و مشکلم رو از نزدیک ببینه و حسش کنه...
این پروژه ام:
http://www.4shared.com/file/IXcHrb4k/NTLfontProblem.html
p a s s w o r d : 123

dr_jacky_2005
شنبه 21 خرداد 1390, 16:26 عصر
مـــــــشـــــــــکــــــ ــــل حــــــــــــــــــــــــ ـــل شــــــــــــــــــد:گریه: :گیج:

چطور؟
نمیدونم حاجی!:متعجب:
1.png بودش؟ خب؟! اون
یه بار دیگه کپی پیست کردم،یه دو سه بار Clean Build کردم...
درست شد!

____________
حالا سوال...
من 3 مدل فونت میخوام
tahoma
باشه...
12
14
16

چطور بسازم؟
من که مشکلم رو با ساخت فونت توی اینجا گفتم:
http://barnamenevis.org/showthread.php?206223-%D8%B3%D9%8A%D8%B3%D8%AA%D9%85-%D9%81%D8%A7%D8%B1%D8%B3%D9%8A-%D9%86%D9%88%D9%8A%D8%B3-NTL_font&p=1279915&viewfull=1#post1279915
البته این به شرطیه که از FontBuilder.exe برای ساخت فونت استفاده کنم...
اون یکی برنامه هم هست که NTL_fontMaker.exe ، که خروجی عکس میده..
که مشکل با اون برنامه رو هم هم من داشتم هم یه یوزری به نام mahdi68 . که مشکل اینه که
http://barnamenevis.org/showthread.php?206223-%D8%B3%D9%8A%D8%B3%D8%AA%D9%85-%D9%81%D8%A7%D8%B1%D8%B3%D9%8A-%D9%86%D9%88%D9%8A%D8%B3-NTL_font&p=959960&viewfull=1#post959960


خب حالا باید چه کرد؟

dr_jacky_2005
شنبه 21 خرداد 1390, 17:06 عصر
مشکل برنامۀ NTL_fontMaker.exe رو حل کردم...
مشکلش این بود که عکس دو برابر بود ( حالا چرا،نمیدونم! )
چطور حل شد:
توی سورس سی شارپ برنامه
font_pic.Width = width*2;
رو کردم:
font_pic.Width = width;

حالا شاید دارم اشتباه میکنم،دلیل علمی داره که دو برابر میکرد و سمت راست عکسمون همیشه خالی بوده...
ولی فعلا که ادامۀ سورس سی شارپ ان تی ال رو نخوندم.

dr_jacky_2005
شنبه 21 خرداد 1390, 17:19 عصر
مشکل ساخت فونت هم یه جورایی حل شد...
فقط یه مساله ای...
فونت های 12 tahoma از لایبراری آقای جوانشیر واقعا 12 بودند و ریز بودند و عالی.
ولی با این NTL وقتی میزنم 12
خیلی بزرگه!!!
قضیه چیه؟


____________________________
اگه دارم هر کاری میکنم،اینجا مینویسیم،واسه اینه که اگه یکی از این مشکلات واسه حتی یک نفر هم پیش اومد، قاطی نکنه و مثل من دیوانه نشه:گیج:

dr_jacky_2005
شنبه 21 خرداد 1390, 17:30 عصر
همچینام حل ندشه...
میزنم tahoma 8
میسازم...
استفاده که میکنم...
فقط کلمۀ اول رو میکشه ( کلمه = صف پیوستۀ حروف،تا رسیدن به یک space )

mic_r_c
شنبه 21 خرداد 1390, 18:38 عصر
من احساس میکنم کمی گیج شدی!
ببین، قضیه اینه که سیستم فارسی نویس از 2 بخش طراستفاده میکنه:
1- فارسی ساز که کاراکتر ها رو به هم میبنده
2- فارسی نویس که اونا رو چاپ میکنه

شما بیا از این کلاسی که در آخرین نسخه ارائ (http://barnamenevis.org/showthread.php?206223-%D8%B3%D9%8A%D8%B3%D8%AA%D9%85-%D9%81%D8%A7%D8%B1%D8%B3%D9%8A-%D9%86%D9%88%D9%8A%D8%B3-NTL_font&p=1233778&viewfull=1#post1233778)ه شده استفاده کن

خوب قسمت J2ME side که در داخل برنامه موبایل استفده میشه که هیچی، براش مثال هایی هم آوردم.
یه برنامه تایپ هم هست که توضیح دادم مورد استفادش چیه.
یه برنامه فونت ساز هم هست که ظاهرا ازش استفاده هم کردی ولی باید 2 نکته رو برای تهیه فونت مد نظر داشته باشی:
1 - فونت بهتره Anti alised باشه، پس اون تیک Antialise رو بزن
2- کاراکتر ها باید از هم فاصله داشته باشند که در مورد تنظیم فاصله ها در همون پست نسخه آخر، تمام توضیحات رو دادم. بعد میبینی که متنت بسیاز زیبا نوشته میشه.

باز هم تاکید میکنم، عجله نکن و راهنمایی ها رو کامل مطالعه کن....

dr_jacky_2005
شنبه 21 خرداد 1390, 20:00 عصر
1 - فونت بهتره Anti alised باشه، پس اون تیک Antialise رو بزن
2- کاراکتر ها باید از هم فاصله داشته باشند که در مورد تنظیم فاصله ها در همون پست نسخه آخر، تمام توضیحات رو دادم. بعد میبینی که متنت بسیاز زیبا نوشته میشه.

1-مرسی که جوابم رو میدین . من تیک رو زدم،ولی دیدین که عکس رو.چطوری زشت میشن فونت ها!
2-من دست به فاصله هاشون نزدم اصلا.
راستی...قضیه اون فاصله دو برابر چی بود توی کد سی شارپ NTL ساز ( فونت ساز ) ؟ من ضربدر 2 اش را برداشتما! ( تا اون فضای خالی دیگه نباشه. الآن کل حرف،کل عرض عکس رو پوشوندن . عین عکس 1.پی ان جی ، مال مثال RTL_folaaan... )

dr_jacky_2005
یک شنبه 22 خرداد 1390, 10:51 صبح
من از کلاس آخر استفاده میکنم،هیچی نشون نمیده!
ولی با لایبراری اولی،نشون میده

lyrebird
دوشنبه 30 خرداد 1390, 11:24 صبح
ببخشید پکیج ServicesHost.UTF8 رو چطوری باید به پروژه اضافه کنیم؟ روی این خط از کلاس NTLcode_gen ارور میده:
import ServicesHost.UTF8;

lyrebird
دوشنبه 30 خرداد 1390, 11:51 صبح
1.png بودش؟ خب؟! اون
یه بار دیگه کپی پیست کردم،یه دو سه بار Clean Build کردم...
درست شد!


میشه عکسی رو که الان استفاده می کنید آپلود کنید؟ چون منم همین مشکلو دارم

smartleopard
دوشنبه 06 تیر 1390, 12:33 عصر
سلام
آیا امکان الحاق عکس در میان خط (نه بین خطوط) در این کتابخانه وجود دارد؟

dr_jacky_2005
پنج شنبه 16 تیر 1390, 16:19 عصر
مشکلم تقریبا حل شد.
تونستم شاداب متن بنویسم.
هم توی ورژن یک
هم دو

البته دوست خیلی خوبم lyrebird (http://barnamenevis.org/member.php?86475-lyrebird) خیلی بهم کمک کرد.
فقط چند تا سوال:
1- واسه کنجکاویم میپرسم،چرا فونت تاهومای 12 لایبراری دیگه 12 است.ولی 12 این لایبراری گنده تر! و توپولتر و bold!

2-دارم از اون کلاسایی که باعث میشه مستقیما فارسی بنویسی توی برنامه،استفاده میکنم ( دیگه با اون کد های NTL نه )
حالا سوال اینجاست که چطور اینتر بزنم،برم خط بعد؟
\n
هم میزنم،نمیشه . ( بک اسلش ، إن )

dr_jacky_2005
پنج شنبه 16 تیر 1390, 16:51 عصر
مشکل:
من این جمله رو نوشتم:
this is a test

اینو نمایش میده:
his is a es

یعنی t رو نمایش نمیده!!!!!!!!!

-از ورژن دو(آخر) استفاده میکنم.
-از متد make_code_char مه در کلاس NTLcode_gen است استفاده میکنم. که مستقیما بتونم فارسی بنویسم.

dr_jacky_2005
پنج شنبه 16 تیر 1390, 17:45 عصر
مشکل بعدی نمایش الکی ض است.
گفتین واسه رفعش از تابع Correct_Char استفاده کنیم
کردم
حل نشد.

راستی،مگه این تابع static نیس! پس چرا من میتونم به طور مستقیم ازش استفاده کنم؟
حتما باید از کلاس NTLcodes_to_utf8 یه اینستنس بگیرم،تا بتونم به تابع دسرسی داشته باشم!

dr_jacky_2005
پنج شنبه 16 تیر 1390, 18:29 عصر
مشکل:
من این جمله رو نوشتم:
this is a test

اینو نمایش میده:
his is a es

یعنی t رو نمایش نمیده!!!!!!!!!

-از ورژن دو(آخر) استفاده میکنم.
-از متد make_code_char مه در کلاس NTLcode_gen است استفاده میکنم. که مستقیما بتونم فارسی بنویسم.

مشکل از ورژن 2 است.
از ورژن یک استفاده کردم ( ورودی پی إن جی + کاراکتر بوندز ) : نمایش درست شد.
فقط برمیگردیم به سوال روزهای اول:
با چه برنامه ای میشه فونت پی ان جی ساخت؟
یه برنامه هست که عکس رو میسازه،ولی سمت راستش خالیه
(دقیقا به اندازۀ طول کاراکتر ها)

lyrebird
شنبه 18 تیر 1390, 09:42 صبح
مشکل بعدی نمایش الکی ض است.
گفتین واسه رفعش از تابع Correct_Char استفاده کنیم
کردم
حل نشد.

راستی،مگه این تابع static نیس! پس چرا من میتونم به طور مستقیم ازش استفاده کنم؟
حتما باید از کلاس NTLcodes_to_utf8 یه اینستنس بگیرم،تا بتونم به تابع دسرسی داشته باشم!
نیازی نیست ازش Instance بگیرین، همین NTLcode_to_utf8.correct_chars(text) رو که بنویسید کافیه، فقط باید کلاسی که این خط رو توش می نویسید کلاس NTLcodes_to_utf8 رو بشناسه، یعنی اگه تو یه پکیج دیگه هست Importش کنید

dr_jacky_2005
شنبه 18 تیر 1390, 10:59 صبح
نیازی نیست ازش Instance بگیرین، همین NTLcode_to_utf8.correct_chars(text) رو که بنویسید کافیه، فقط باید کلاسی که این خط رو توش می نویسید کلاس NTLcodes_to_utf8 رو بشناسه، یعنی اگه تو یه پکیج دیگه هست Importش کنید
مرسی
بله
درسته
چون استاتیک هست،نیازی به اینستنس نیس

ولی مشکل حل نشد!

اینجاها که میرسه، ض چاپ میکنه:

space

عدد های فارسی مثلا ٢٠٠٠

یا این کاراکتر فارسی ای که با Shift+J نوشته میشه.
مثلا اگه بنویسیم: مرســـــــــی
میشه: مرس ض ض ض ض ض ی

MehdiF5
دوشنبه 28 شهریور 1390, 13:57 عصر
سلام بچه ها خسته نباشید!
بچه ها میشه یکم درموردNTL_Fontراهنماییم کنید.مثلاچجوری ازورژن دومش استفاده کنم یا اینکه چجوری واسه ورژن اولی فونت بسازم,ممنون میشم اگه راهنماییم کنید.باتشکر

MehdiF5
دوشنبه 28 شهریور 1390, 14:10 عصر
یکی نمیخوادجواب من بدبختوبده!!:ناراحت:

Hasan_DMT
چهارشنبه 06 مهر 1390, 16:27 عصر
با سلام و تشکر مخصوص از آقای افشین حسینی
یک سوال داشتم
:
اگه بخوایم یک نوشته را به Image تبدیل کرد از این فارسی نویس میشه استفاده کرد؟

mosiuoo
یک شنبه 27 تیر 1395, 11:01 صبح
سلام،
براي بعضي از كارها كه انيميشن و ندارند و سرعت نوشتن خيلي مهم نيست و فقط سرعت بارگذاري مهمه، مثل كتابهاي الكترونيكي ساده، ميشه از اين كلاس استفاده نمود.
اگر شما 80 صفحه داشته باشيد كه هر صفحه 1 يا 2 تصوير داشته باشه و بخواهيد متن و تصوير رو در صفحه نمايش دهيد، برنامه اي بنويسيد كه محتويات اطلاعات NTL_code رو بررسي كنه و نام تصاويري كه درخواست شده را استخراج نمايد تا با استفاده از اين نام تصوير، تصوير يا تصاوير مورد نظر بارگذاري شود.











آموزش موسیقی (http://moobmoo.com/Music-Tutorials)
آموزش برنامه نویسی وب (http://moobmoo.com/Web-Programming-Tutorials)


دانلود آموزش برنامه نویسی (http://moobmoo.com/Learn-Programming)


دانلود آموزش موسیقی (http://moobmoo.com/Music-Tutorials)


دانلود آموزش های لیندا (http://moobmoo.com/Full-training-Linda)

unique2017
شنبه 10 شهریور 1397, 14:19 عصر
این روش برای من جواب داد