Trường Phương trình và Công thức
Các trường Phương trình và Công thức
Hướng dẫn này cho thấy cách làm việc với FieldAdvance and FieldSymbol các lớp field trong Aspose.Words FOSS cho .NET, triển khai các trường của Word ADVANCE and SYMBOL các trường. Cả hai lớp kế thừa từ Field và thực thi IFieldCodeTokenInfoProvider; cho cơ sở Field mô hình đối tượng bản thân, xem Làm việc với Trường hướng dẫn.
Định vị lại Văn bản với FieldAdvance
FieldAdvance thực hiện trường ADVANCE, trường này dịch chuyển văn bản phía sau nó mà không chèn ký tự hiển thị. DownOffset, UpOffset, LeftOffset và RightOffset (tất cả string) di chuyển văn bản phía sau một số điểm theo hướng đó. HorizontalPosition và VerticalPosition (cũng là string) di chuyển văn bản phía sau tới vị trí tuyệt đối đo từ cạnh trái của cột, khung, hoặc ô văn bản, và cạnh trên của trang, tương ứng.
Chèn ký tự đặc biệt với FieldSymbol
FieldSymbol thực hiện trường SYMBOL, trường này chèn một ký tự duy nhất bằng điểm mã. CharacterCode (string) cung cấp điểm mã của ký tự dưới dạng thập phân hoặc thập lục phân. IsAnsi, IsUnicode và IsShiftJis (tất cả bool) chọn cách CharacterCode được diễn giải. FontName và FontSize (string) đặt phông chữ dùng để hiển thị ký tự đã lấy, và DontAffectsLineSpacing (bool) kiểm soát xem ký tự chèn có ảnh hưởng đến khoảng cách dòng của đoạn văn hay không.
Mẹo và Thực hành Tốt nhất
- Chỉ đặt một trong số
IsAnsi,IsUnicodehoặcIsShiftJistrên mộtFieldSymbolđể tránh việc diễn giải mơ hồ củaCharacterCode. - Các thuộc tính offset của
FieldAdvancelàstring, không phải kiểu số — truyền các giá trị điểm dưới dạng chuỗi khi thiết lậpDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPositionhoặcVerticalPosition. - Đặt
FieldSymbol.FontNamethành một phông chữ thực sự chứa glyph tạiCharacterCode, nếu không ký tự được hiển thị có thể chuyển sang placeholder glyph bị thiếu. - Gọi
Update()sau khi thay đổi bất kỳ thuộc tính nào trênFieldAdvancehoặcFieldSymbolđểResult/DisplayResultcủa trường phản ánh sự thay đổi. - Sử dụng
DontAffectsLineSpacingkhi chèn ký tự biểu tượng cao hoặc lạ mà không nên làm giãn chiều cao của dòng xung quanh.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Sửa lỗi |
|---|---|---|
Trường ADVANCE không di chuyển văn bản như mong đợi | Thuộc tính offset không đúng đã được thiết lập, hoặc giá trị để ở chế độ mặc định | Đặt thuộc tính DownOffset / UpOffset / LeftOffset / RightOffset (tương đối) hoặc HorizontalPosition / VerticalPosition (tuyệt đối) cụ thể sao cho phù hợp với chuyển động mong muốn |
Trường SYMBOL hiển thị ký tự sai | CharacterCode đã được giải mã dưới mã hoá sai | Đặt chính xác một trong IsAnsi, IsUnicode hoặc IsShiftJis sao cho phù hợp với cách CharacterCode được viết |
| Ký tự biểu tượng được hiển thị dưới dạng hộp glyph bị thiếu | FontName không chứa glyph cho CharacterCode | Đặt FontName thành phông chữ đã biết bao gồm ký tự đó |
FAQ
Trường ADVANCE làm gì?
Nó đặt lại vị trí của văn bản theo sau, hoặc bằng một độ lệch tương đối (DownOffset, UpOffset, LeftOffset, RightOffset) hoặc một vị trí tuyệt đối (HorizontalPosition, VerticalPosition), mà không chèn ký tự hiển thị.
Làm thế nào để chèn một ký tự Unicode cụ thể bằng FieldSymbol?
Đặt CharacterCode thành mã điểm của ký tự, đặt IsUnicode = true, và tùy chọn đặt FontName / FontSize để hiển thị glyph.
Các giá trị độ lệch của FieldAdvance là số hay chuỗi?
Chúng là các thuộc tính của string (DownOffset, UpOffset, LeftOffset, RightOffset, HorizontalPosition, VerticalPosition), phù hợp với định dạng đối số mã trường thô.
Việc chèn ký tự SYMBOL có ảnh hưởng đến khoảng cách dòng không?
Đặt DontAffectsLineSpacing thành true để ngăn ký tự được chèn ảnh hưởng đến chiều cao dòng của đoạn văn.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
FieldAdvance | Thực hiện trường ADVANCE; định vị lại văn bản phía sau mà không chèn ký tự |
FieldAdvance.DownOffset / UpOffset / LeftOffset / RightOffset | Các offset điểm tương đối được áp dụng cho văn bản phía sau |
FieldAdvance.HorizontalPosition / VerticalPosition | Vị trí điểm tuyệt đối được áp dụng cho văn bản tiếp theo |
FieldSymbol | Thực hiện trường SYMBOL; chèn một ký tự theo mã điểm |
FieldSymbol.CharacterCode | Mã điểm của ký tự, ở dạng thập phân hoặc thập lục phân |
FieldSymbol.IsAnsi / IsUnicode / IsShiftJis | Chọn cách CharacterCode được diễn giải |
FieldSymbol.FontName / FontSize | Phông chữ được sử dụng để hiển thị ký tự đã lấy |
FieldSymbol.DontAffectsLineSpacing | Kiểm soát liệu ký tự được chèn có ảnh hưởng đến khoảng cách dòng của đoạn văn hay không |