PDA

View Full Version : مشکلل با اندازه فونت فارسی در متن ارسالی به Word



Behzad_Asharkhan
سه شنبه 18 فروردین 1383, 08:57 صبح
سلام

از کامپوننت TWordApplication در تب servers برای ارتباط با word استفاده میکنم. (windowsxp)با متن انگلیسی همه چی درسته ولی اگه همه یا قسمتی از متن فارسی باشه، فقط همون متن فارسی اندازه فونتش درست تنظیم نمیشه. با چند نوع فونت از جمله tahoma هم تست کردم نشد. به تنطیمات pc من هم ربط نداره ، روی یه کامپیوتر دیگه هم تست کردم.
با مثالی هم که خود آقای بورلند :shock: تو این مسیر منتشر کرده Delphi7\Demos\ActiveX\OleAuto\SrvComp\Word همین اشکال هست.

اگه کد زیر رو اجرا کنید مشکل دیده میشه.
اگر در Edit1 متن انگلیسی باشه، متن داخل word اینطوریه
Test Edit1 Test
و اگه داخل edit1 متن فارسی بنویسید خروجی اینطوریه
Test بهزاد Test


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, WordXP, OleServer;

type
TForm1 = class(TForm)
WordApplication: TWordApplication;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
WordApplication.Connect;
WordApplication.Visible := True;

WordApplication.Documents.Add(EmptyParam,EmptyPara m,EmptyParam,EmptyParam);

with WordApplication.Selection do
begin
ParagraphFormat.Alignment := wdAlignParagraphCenter;
Font.Name := 'Times New Roman';
Font.Size := 28;
Font.Bold := 1;
TypeText('Test ' + Edit1.Text + ' Test');
end;

WordApplication.Disconnect;
end;

end.

خیلی ممنون.

.

Panje Tala
سه شنبه 18 فروردین 1383, 13:02 عصر
با سلام
شما باید برای فونتهای فارسی هم Size را تعیین نمایید برای این منظور از کد زیر استفاده کنید:

Wordapplication1.selection.font.SizeBi:=28;

Behzad_Asharkhan
سه شنبه 18 فروردین 1383, 14:11 عصر
سلام

خیلی ممنون :تشویق: :lol:

مشکل حل شد.

kimia1
چهارشنبه 19 فروردین 1383, 07:56 صبح
من یه مشکل دیگه دارم که اگه کسی میتونه اون را حل کنه.اونم اینه که من مشکل سایز ندارم..بلکه مشکل فونت دارم
مثلا اگه توی همین مثال توی edit1 بنویسم ایمان توی word اینجوری دیده میشه
Test ÇíãÇä Test

Behzad_Asharkhan
چهارشنبه 19 فروردین 1383, 10:27 صبح
سلام

نام و سایر مشخصات فونت را هم تنظیم کنید



Wordapplication1.selection.font.NameBi := ...
Wordapplication1.selection.font.SizeBi := ...
Wordapplication1.selection.font.BoldBi := ...
...

kimia1
چهارشنبه 19 فروردین 1383, 11:54 صبح
نام و سایر مشخصات فونت را هم تنظیم کنید
این کار را هم کردم ...اما باز هم نشد

ali643
چهارشنبه 19 فروردین 1383, 12:30 عصر
با اینا تست کن

Var
Word : OLEVariant;


word.Selection.TypeParagraph;
word.Selection.Font.Name := 'Times New Roman';
word.Selection.font.Size := 12;
word.Selection.font.Bold := True;