PDA

View Full Version : مشکل در Justify کردن متن فارسی از چپ و راست در چاپ



ma_mohsen
جمعه 19 فروردین 1384, 22:40 عصر
بسم الله الرحمن الرحیم
دوستان گرامی
سلام
برنامه ای در دلفی نوشته ام که برای چاپ متن فارسی آن مشکل دارم. به علت اینکه راه حلی برای Justify کردن متن فارسی از هر دو طرف (چپ و راست) پیدا نکرده ام, اطلاعات را در فایل HTML ذخیره می کنم و سپس آن را چاپ می کنم.
تا این جا مشکلی نیست و مساله حل شده است اما مشکلی که ایجاد می شود این است که در تنظیمات چاپ webbrowser آمده است که Header و Footer داشته باشد.
بنابراین بالای صفحه Page 1 of 1 دیده می شود و پایین صفحه اسم فایل یا About:Blank
لطفا مرا راهنمایی کنید و بگویید که از داخل برنامه, چگونه تنظیمات هدر و فوتر را تغییر دهم و خالی کنم. ( و یا اینکه راه حلی برای Justify کردن متن از هر دو طرف چپ و راست برای چاپ یک Memo یا Richedit متن فارسی نشان دهید)
ضمنا از Webbrowser استفاده می کنم
برای ساخت فایل HTML ابتدا متن لازم را داخل یک Memo می ریزم و سپس:
Memo1.Lines.SaveToFile('c:\ali.htm');
و برای نمایش آن از دستور زیر استفاده می کنم
WebBrowser5.Navigate('c:\ali.htm');
برای پیش نمایش چاپ از دستور زیر می توان استفاده کرد:
WebBrowser5.ExecWB(OLECMDID_PRINTPREVIEW ,2);
برای دیدن صفحه تنظیمات نیز می توان از دستور زیر استفاده کرد:
WebBrowser5.ExecWB(OLECMDID_Pagesetup ,2);
البته من سعی کردم که پنجره تنظیمات را فعال کنم و از داخل برنامه خودم با استفاده از keybd_event کلیدهای میانبر حذف هدر و فوتر را ارسال کنم اما مشکل این است که هنگامی که پنجره تنظیمات فعال می شود به صورت Modal است.
با تشکر

ramin_abdi
شنبه 20 فروردین 1384, 10:28 صبح
آقا به نظر من شما شاید خاصیت bidimode را به مقدار bdRightToLeft تغییر دهید مشکل حل شود و لازم نیست مقدار خاصیت taLeftJustify را تغییر دهید.

ma_mohsen
شنبه 20 فروردین 1384, 10:51 صبح
آقا به نظر من شما شاید خاصیت bidimode را به مقدار bdRightToLeft تغییر دهید مشکل حل شود و لازم نیست مقدار خاصیت taLeftJustify را تغییر دهید.


نه جانم. این پروپرتی فقط سمت آن را مشخص می کند که راست به چپ باشد.
مشکل در این است که در همین حالت هم باید متن ما از هر دو طرف (چپ و راست) کشیده (جاستی فای) شود مثل Word که این قابلیت را دارد. یا مثل HTML

ma_mohsen
شنبه 27 فروردین 1384, 18:11 عصر
بنام حق
دوستان!
این مشکل همچنان آزار دهنده است.
مشکلی گشایی نیست؟

علیرضا جاوید
شنبه 27 فروردین 1384, 23:46 عصر
نمیدونم چرا همه اینقدر علاقه دارند که 100 بار کد رو میپیچونند تا با یک دستور پرینت کنند عوض این هم کار بهترین کار اینه که 10 خط کد اضافه کنید و با Printer خودتون هر جور خواستید پرینت کنید یونیت Printers فوق العاده قدرتمند هستش !!!!

-----------------------------------------------------------------------
بحث پرینت که میشه بهترین راه حل ساخت چرخ هستش