PDA

View Full Version : تبدیل متن Rich Edit به تصویر !



Ali_Hashemi
سه شنبه 12 خرداد 1383, 14:24 عصر
سلام

من نیاز شدیدی به تبدیل متن نوشته شده در یک Rich Edit به یک تصویر مثلا Bmp

دارم. از چند روش استفاده کردم بهترین آنها تبدیل Rich Edit به یک DC بود وبه خوبی جواب

می داد اما مشکل این است که اگر متن Rich Edit به صورت Scroll درآمده باشد این روش فقط

ناحیه قابل مشاهده را تبدیل میکند.

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

چسبانده نمی شوند مثلا کلمه علی به این صورت در تصویر ظاهر می شود : ع ل ی



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

متشکرم

Delphi-Clinic
سه شنبه 12 خرداد 1383, 14:40 عصر
ببین

http://www.gnostice.com/edoc_engine.asp

بدردت خورد برو بخرش :)

phantasm
چهارشنبه 13 خرداد 1383, 02:49 صبح
procedure TForm1.Button1Click(Sender: TObject);
var

R : TRect;
Bitmap : TBitmap;

begin
// creates a bitmap to draw the text
Bitmap := TBitmap.Create;
try
Bitmap.Width := 400;
Bitmap.Height := 400;



with Bitmap.Canvas do begin
R := Rect(0,0,Bitmap.Width,Bitmap.Height);
DrawText(Handle,PChar(richedit1.Text),-1,R,DT_NOPREFIX or DT_WORDBREAK);
end;

Bitmap.SaveToFile('text.bmp');
finally
Bitmap.Free;
end;


end;

تنها نکته ای که باید بهش توجه کنی اینه که اندازه تصویرت رو باید متناسب با مقدار متن درون richedit بگیری.

JavanSoft
چهارشنبه 13 خرداد 1383, 09:55 صبح
ممنون جواب جالبی بود

Ali_Hashemi
چهارشنبه 13 خرداد 1383, 13:31 عصر
آقا دمت گرم من که تو سوالم گفتم این راه رو امتحان کرده ام
این روشی که شما گفته اید در صورتی درست جواب میدهد که متن مورد نظر ما فقط با یک فونت
وفقط با یک اندازه نوشته شده باشد.
من میخواهم تصویر دقیقا مطابق با تغییر فونت ویا اندازه فونت موجود در ریچ ادیت تغییر کند.
روشی هم که استفاده کردم به این صورت است که دیگر این مشکل را ندارد فقط مشکل اسکرول به وجود می اید.

; Var can:Tcanvas
;can:=tcanvas.create
(can.handle:=getwindowsdc(richedit1.handle
;image1.width:=richedit1.width
;image1.height:=richedit1.height
(image1.canvas.copyrect(image1.clientrect,can,imag e1.clientrect
('image1.picture.savetofile('a.bmp'
;can.free


البته از روش ÷یشنهادی شما هم استفاده کردم ولی باید برای هر کارکتر فونت همان کارکتر را در نظر بگیریم
که این هم مشکلی ندارد بجز اینکه هنگام استفاده از دستور DrawText به صورت کارکتر به کارکتر حروف فارسی به هم نمی چسبند.
به هر حال متشکرم و امیدوارم کسی با راه حل درستی مرا راهنمایی کند