ทำงานกับ Canvas ภายใน XPS
ตัด (clip) และแปลง (transform) Canvas ในไฟล์ XPS โดยใช้ C++ API
ในไฟล์ XPS นั้น Canvas คือพื้นที่สี่เหลี่ยมบนหน้าเพจที่สามารถวาดเนื้อหาภาพ เช่น ข้อความ รูปภาพ และรูปทรง โดยทำหน้าที่เป็นตัวบรรจุสำหรับองค์ประกอบเหล่านี้และให้เฟรมเวิร์กสำหรับการจัดระเบียบและการแบ่งชั้น (layering) Canvas สามารถนำกลับมาใช้ใหม่ได้ในส่วนต่างๆ ของเอกสาร หรือแม้แต่ในเอกสารหลายฉบับ ซึ่งช่วยให้จัดโครงสร้างและจัดระเบียบเนื้อหาภายในเอกสาร XPS ได้อย่างยืดหยุ่น คุณสมบัติหลักของ Canvas ในไฟล์ XPS:
- Canvas สามารถซ้อน (nested) กันภายใน Canvas อื่นๆ ได้ ทำให้เกิดโครงสร้างลำดับชั้นที่ช่วยให้สร้างเลย์เอาต์ (layouts) ที่ซับซ้อนและจัดกลุ่มองค์ประกอบได้
- Canvas สามารถแปลง (transform) ได้โดยใช้การดำเนินการต่างๆ เช่น การเลื่อน (translation) การหมุน (rotation) และการปรับขนาด (scaling) ซึ่งช่วยให้วางตำแหน่งและปรับขนาดเนื้อหาได้อย่างยืดหยุ่น
- Canvas สามารถตัด (clip) ให้อยู่ในพื้นที่ที่ระบุได้ ซึ่งจะจำกัดพื้นที่ที่มองเห็นได้ของเนื้อหา สิ่งนี้มีประโยชน์สำหรับการสร้างรูปทรงและเอฟเฟกต์ที่ซับซ้อน
- Canvas สามารถประกอบด้วยองค์ประกอบภาพที่แตกต่างกันได้ รวมถึงการเรียกใช้ข้อความ (text runs) ย่อหน้า (paragraphs) และกล่องข้อความ (text boxes) นอกจากนี้ยังสามารถประกอบด้วยรูปภาพ รูปทรงเรขาคณิต และ Canvas อื่นๆ
การจัดการ Canvas ในเอกสารเป็นหนึ่งในคุณสมบัติที่ Aspose.Page สำหรับ C++ นำเสนอ โซลูชันนี้ทำงานร่วมกับภาษาคำอธิบายหน้าต่างๆ โดยเฉพาะ XPS
ในการแปลง (transform) Canvas ของไฟล์ XPS ให้ทำตามคู่มือด้านล่าง:
- สร้างไฟล์ XPS โดยใช้คลาส XpsDocument
- สร้าง Canvas หลักที่ใช้ร่วมกันสำหรับองค์ประกอบหน้าทั้งหมด โดยใช้เมธอด AddCanvas()
- สร้างออฟเซตซ้ายและบนใน Canvas หลักโดยใช้เมธอด CreateMatrix()
- สร้างรูปทรงเรขาคณิตเส้นทางสี่เหลี่ยม (rectangle path geometry) ด้วยเมธอด CreatePathGeometry()
- สร้างการเติม (fill) สำหรับสี่เหลี่ยมโดยใช้คลาส XpsBrush
- ในการสร้างสี่เหลี่ยมใน Canvas 2 และเติม ให้ใช้คลาส XpsPath
- ในการเลื่อน Canvas 3 เพื่อวางตำแหน่งสี่เหลี่ยมใหม่ด้านล่างสี่เหลี่ยมก่อนหน้า ให้ใช้เมธอด CreateMatrix()
- ในการเลื่อน Canvas นี้ไปทางด้านขวาของหน้า ให้ใช้เมธอด Translate()
- ในการปรับขนาด (scale) Canvas 4 ให้เรียกเมธอด Scale()
- ในการหมุน Canvas 5 รอบจุดหนึ่ง 45 องศา เมธอด RotateAround() จะช่วยได้
- บันทึกเอกสาร XPS ที่เปลี่ยนแปลงโดยใช้เมธอด XpsDocument.Save()
การแปลง Canvas (canvas transformation)
ในการตัด (clip) Canvas ของไฟล์ XPS ให้ทำตามคู่มือด้านล่าง:
- สร้างหรือเปิดไฟล์ XPS โดยใช้คลาส XpsDocument
- สร้าง Canvas หลักที่ใช้ร่วมกันสำหรับองค์ประกอบหน้าทั้งหมด โดยใช้เมธอด AddCanvas()
- สร้างออฟเซตซ้ายและบนใน Canvas หลักโดยใช้เมธอด CreateMatrix()
- สร้างรูปทรงเรขาคณิตเส้นทางสี่เหลี่ยมด้วยเมธอด CreatePathGeometry()
- สร้างการเติมสำหรับสี่เหลี่ยมโดยใช้คลาส XpsBrush
- ในการเพิ่ม Canvas อื่นพร้อม Clip ไปยัง Canvas หลัก ให้เรียกเมธอด AddCanvas() อีกครั้ง
- สร้างรูปทรงเรขาคณิตวงกลมสำหรับ Clip โดยใช้คลาส XpsPathGeometry
- ในการสร้างสี่เหลี่ยมใน Canvas นี้และเติม ให้ใช้คลาส XpsPath
- เพิ่ม Canvas อื่นด้วยเมธอด AddCanvas() จากนั้นสร้างสี่เหลี่ยมใน Canvas นี้และลากเส้น (stroke) ด้วยคลาส XpsPathGeometry
- บันทึกเอกสาร XPS ที่เปลี่ยนแปลงโดยใช้เมธอด XpsDocument.Save()
การตัด Canvas (canvas clipping)
XPS XPS รูปแบบไฟล์คืออะไร
XPS (XML Paper Specification) เป็นรูปแบบทางเลือกของ Microsoft ต่อ PDF พื้นฐานบน XML/HTML รักษาเลย์เอาต์ข้ามแพลตฟอร์มและไม่ขึ้นกับระบบปฏิบัติการ