ฟิลด์สมการและสูตร

ฟิลด์สมการและสูตร

ฟิลด์สมการและสูตร

คู่มือฉบับนี้แสดงวิธีการทำงานกับ 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 ถูกเขียน
อักขระสัญลักษณ์แสดงเป็นกล่องที่ไม่มี glyphFontName ไม่ได้มี 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ควบคุมว่าตัวอักษรที่แทรกจะมีผลต่อการเว้นบรรทัดของย่อหน้าหรือไม่

ดูเพิ่มเติม

 ภาษาไทย