ฟิลด์สมการและสูตร
ฟิลด์สมการและสูตร
คู่มือฉบับนี้แสดงวิธีการทำงานกับ 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 (string) ให้จุดรหัสของอักขระในรูปแบบฐานสิบหรือฐานสิบหก IsAnsi, IsUnicode และ IsShiftJis (ทั้งหมดเป็น bool) เลือกวิธีการตีความ CharacterCode FontName และ FontSize (string) กำหนดแบบอักษรที่ใช้ในการแสดงอักขระที่ดึงมา, และ DontAffectsLineSpacing (bool) ควบคุมว่าการแทรกอักขระนี้มีผลต่อการเว้นระยะบรรทัดของย่อหน้าหรือไม่.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- ตั้งค่าเพียงหนึ่งใน
IsAnsi,IsUnicodeหรือIsShiftJisบนFieldSymbolเพื่อหลีกเลี่ยงการตีความที่คลุมเครือของCharacterCode. FieldAdvanceมีคุณสมบัติออฟเซ็ตเป็นstring, ไม่ใช่ชนิดตัวเลข — ส่งค่าจุดเป็นสตริงเมื่อกำหนดDownOffset,UpOffset,LeftOffset,RightOffset,HorizontalPosition, หรือVerticalPosition.- ตั้งค่า
FieldSymbol.FontNameให้เป็นฟอนต์ที่จริง ๆ มี glyph ที่CharacterCode, ไม่เช่นนั้น ตัวอักษรที่เรนเดอร์อาจกลับไปใช้ placeholder ของ missing-glyph. - เรียก
Update()หลังจากเปลี่ยนแปลงคุณสมบัติใด ๆ บนFieldAdvanceหรือFieldSymbolเพื่อให้Result/DisplayResultของฟิลด์สะท้อนการเปลี่ยนแปลงนั้น. - ใช้
DontAffectsLineSpacingเมื่อต้องแทรกอักขระสัญลักษณ์ที่สูงหรือแปลกประหลาดที่ไม่ควรทำให้ความสูงของบรรทัดรอบข้างขยายออก.
ปัญหาที่พบบ่อย
| ปัญหา | สาเหตุ | วิธีแก้ไข |
|---|---|---|
ฟิลด์ ADVANCE ไม่ย้ายข้อความตามที่คาดหวัง | ตั้งค่าคุณสมบัติ offset ผิด หรือค่าหนึ่งถูกทิ้งไว้เป็นค่าเริ่มต้น | ตั้งค่าคุณสมบัติ DownOffset / UpOffset / LeftOffset / RightOffset (เชิงสัมพันธ์) หรือ HorizontalPosition / VerticalPosition (เชิงสัมบูรณ์) ให้ตรงกับการเคลื่อนที่ที่ต้องการ |
ฟิลด์ SYMBOL แสดงอักขระผิด | CharacterCode ถูกตีความด้วยการเข้ารหัสที่ผิด | กำหนดให้เลือกอย่างใดอย่างหนึ่งระหว่าง IsAnsi, IsUnicode หรือ IsShiftJis ให้ตรงกับวิธีที่ CharacterCode ถูกเขียน |
| อักขระสัญลักษณ์แสดงเป็นกล่องที่ไม่มี glyph | FontName ไม่ได้มี glyph สำหรับ CharacterCode | ตั้งค่า FontName เป็นแบบอักษรที่ทราบว่ามีอักขระนั้น |
FAQ
ฟิลด์ ADVANCE ทำหน้าที่อะไร?
มันทำการย้ายตำแหน่งข้อความที่ตามมา โดยใช้การเลื่อนแบบสัมพัทธ์ (DownOffset, UpOffset, LeftOffset, RightOffset) หรือตำแหน่งแบบสัมบูรณ์ (HorizontalPosition, VerticalPosition) โดยไม่แทรกอักขระที่มองเห็นได้.
ฉันจะใส่อักขระยูนิโค้ดเฉพาะด้วย FieldSymbol ได้อย่างไร?
กำหนดค่า CharacterCode ให้เป็นจุดรหัสของอักขระ, ตั้งค่า IsUnicode = true, และหากต้องการสามารถตั้งค่า FontName / FontSize สำหรับการเรนเดอร์ glyph ได้.
ค่าการออฟเซ็ตของ 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 | ควบคุมว่าตัวอักษรที่แทรกจะมีผลต่อการเว้นบรรทัดของย่อหน้าหรือไม่ |