فیلدهای معادلات و فرمولها
فیلدهای معادلات و فرمولها
این راهنما نشان میدهد چگونه با FieldAdvance and FieldSymbol کلاسهای فیلد در Aspose.Words FOSS برای .NET که فیلدهای Word را پیادهسازی میکنند، ADVANCE and SYMBOL فیلدها. هر دو کلاس از Field و پیادهسازی میکنند IFieldCodeTokenInfoProvider; برای مدل پایه Field مدل شیء پایه، ببینید کار با فیلدها راهنما.
جابجایی متن با FieldAdvance
FieldAdvance فیلد ADVANCE را پیادهسازی میکند که متن پس از آن را بدون درج کاراکترهای قابل مشاهده جابجا میسازد. DownOffset، UpOffset، LeftOffset و RightOffset (همه string) متن پس از آن را به تعداد نقطهای در آن جهت جابهجا میکنند. HorizontalPosition و VerticalPosition (همچنین string) متن پس از آن را به موقعیتی مطلق که از لبهٔ چپ ستون، قاب یا جعبهٔ متن و از لبهٔ بالای صفحه اندازهگیری میشود، منتقل میکنند.
درج کاراکترهای ویژه با FieldSymbol
FieldSymbol فیلد SYMBOL را پیادهسازی میکند که یک کاراکتر تک را بر اساس کد نقطهای وارد میسازد. CharacterCode (رشته) کد نقطهای کاراکتر را به صورت دهدهی یا هگزادسیمال فراهم میکند. IsAnsi، IsUnicode و IsShiftJis (همهٔ بولی) تعیین میکنند CharacterCode چگونه تفسیر شود. FontName و FontSize (رشته) قلم مورد استفاده برای رندر کاراکتر بازیابیشده را تنظیم میکنند و DontAffectsLineSpacing (بولی) کنترل میکند که آیا کاراکتر درجشده بر فاصلهخط پاراگراف تأثیر میگذارد یا نه.
نکات و بهترین روشها
- تنها یکی از
IsAnsi،IsUnicodeیاIsShiftJisرا رویFieldSymbolتنظیم کنید تا از تفسیر مبهمCharacterCodeجلوگیری شود. - ویژگیهای افست
FieldAdvancestringهستند، نه انواع عددی — مقادیر نقطهای را بهصورت رشته هنگام تنظیمDownOffset،UpOffset،LeftOffset،RightOffset،HorizontalPositionیاVerticalPositionپاس دهید. - به
FieldSymbol.FontNameیک قلم تنظیم کنید که واقعاً گلیفCharacterCodeرا داشته باشد، در غیر اینصورت کاراکتر رندر شده ممکن است به جایگزین گلیفغایب بازگردد. - پس از تغییر هرگونه ویژگی در
FieldAdvanceیاFieldSymbol،Update()را فراخوانی کنید تاResult/DisplayResultفیلد تغییر را منعکس کند. - از
DontAffectsLineSpacingهنگام درج یک نماد بلند یا غیرمعمول که نباید ارتفاع خط اطراف را کشیده کند، استفاده کنید.
مشکلات رایج
| مسأله | علت | راهحل |
|---|---|---|
فیلد ADVANCE متن را همانطور که انتظار میرود جابجا نمیکند | ویژگی offset نادرست تنظیم شده بود، یا مقدار به تنظیم پیشفرض باقی مانده بود | ویژگی DownOffset / UpOffset / LeftOffset / RightOffset (relative) یا HorizontalPosition / VerticalPosition (absolute) را تنظیم کنید که با حرکت موردنظر مطابقت داشته باشد |
فیلد SYMBOL کاراکتر نادرست را نمایش میدهد | CharacterCode تحت رمزگذاری نادرست تفسیر شد | یک مورد از IsAnsi، IsUnicode یا IsShiftJis را دقیقاً تنظیم کنید تا با نحوهٔ نوشتن CharacterCode مطابقت داشته باشد |
| کاراکتر نماد به صورت یک جعبهٔ گلیف گمشده نمایش داده میشود | FontName شامل گلیف برای CharacterCode نیست | FontName را به فونتی تنظیم کنید که میدانید آن کاراکتر را شامل میشود |
FAQ
فیلد ADVANCE چه کاری انجام میدهد؟
متن پس از آن را جابجا میکند، یا با یک جابجایی نسبی (DownOffset, UpOffset, LeftOffset, RightOffset) یا با یک موقعیت مطلق (HorizontalPosition, VerticalPosition)، بدون اینکه کاراکترهای قابل مشاهدهای وارد کند.
چگونه میتوانم یک کاراکتر یونیکد خاص را با FieldSymbol وارد کنم؟
CharacterCode را به نقطه کد کاراکتر تنظیم کنید، IsUnicode = true را تنظیم کنید، و بهصورت اختیاری FontName / FontSize را برای رندر گلیف تنظیم کنید.
آیا مقادیر جابجایی FieldAdvance عدد هستند یا رشته؟
اینها ویژگیهای string هستند (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition) که با قالب آرگومان کد-فیلد خام مطابقت دارند.
آیا وارد کردن یک کاراکتر SYMBOL بر فاصله خطوط تاثیر میگذارد؟
DontAffectsLineSpacing را به true تنظیم کنید تا از تأثیر کاراکتر وارد شده بر ارتفاع خط پاراگراف جلوگیری شود.
API Reference خلاصه
| کلاس/متد | توضیح |
|---|---|
FieldAdvance | فیلد ADVANCE را پیادهسازی میکند؛ متن بعدی را بدون وارد کردن کاراکترها جابجا میسازد |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | جابهجاییهای نقطه نسبی اعمالشده بر متن بعدی |
FieldAdvance.HorizontalPosition / VerticalPosition | موقعیت نقطه مطلق اعمالشده بر متن بعدی |
FieldSymbol | فیلد SYMBOL را پیادهسازی میکند؛ یک کاراکتر را بر پایه نقطه کد وارد میکند |
FieldSymbol.CharacterCode | نقطه کد کاراکتر، به صورت دهدهی یا هگزادسیمال |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | نحوه تفسیر CharacterCode را انتخاب میکند |
FieldSymbol.FontName / FontSize | قلم مورد استفاده برای رندر کردن کاراکتر بازیابیشده |
FieldSymbol.DontAffectsLineSpacing | مشخص میکند که آیا کاراکتر درجشده بر فاصله خطوط پاراگراف تأثیر میگذارد |