จัดรูปแบบรูปทรง PowerPoint ใน Python ผ่าน Java
บทนำ
ใน PowerPoint คุณสามารถเพิ่มรูปทรงลงในสไลด์ได้ เนื่องจากรูปทรงประกอบด้วยเส้น คุณจึงสามารถจัดรูปแบบได้โดยการแก้ไขหรือใช้เอฟเฟ็กต์กับเส้นรอบ นอกจากนี้คุณยังสามารถจัดรูปแบบรูปทรงโดยระบุการตั้งค่าที่ควบคุมการเติมส่วนภายในของรูปทรง

Aspose.Slides for Python via Java ให้คลาสและเมธอดที่ช่วยให้คุณจัดรูปแบบรูปทรงโดยใช้ตัวเลือกเดียวกับที่มีใน PowerPoint
จัดรูปแบบเส้น
ด้วย Aspose.Slides คุณสามารถกำหนดสไตล์เส้นที่กำหนดเองสำหรับรูปทรง ขั้นตอนต่อไปนี้สรุปกระบวนการ:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ตั้งค่า line style ของรูปทรง
- ตั้งค่าความกว้างของเส้น
- ตั้งค่า dash style ของเส้น
- ตั้งค่าสีของเส้นสำหรับรูปทรง
- บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ PPTX
โค้ดต่อไปนี้แสดงวิธีจัดรูปแบบสี่เหลี่ยม AutoShape:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, LineDashStyle, LineStyle, Presentation, SaveFormat, ShapeType
from java.awt import Color
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ
presentation = Presentation()
try:
# รับสไลด์แรก
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปของประเภท Rectangle
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 150, 150, 75)
# กำหนดสีเติมสำหรับรูปทรงสี่เหลี่ยม
shape.getFillFormat().setFillType(FillType.NoFill)
# ใช้การจัดรูปแบบกับเส้นของสี่เหลี่ยม
shape.getLineFormat().setStyle(LineStyle.ThickThin)
shape.getLineFormat().setWidth(7)
shape.getLineFormat().setDashStyle(LineDashStyle.Dash)
# กำหนดสีสำหรับเส้นของสี่เหลี่ยม
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
# บันทึกไฟล์ PPTX ไปยังดิสก์
presentation.save("formatted_lines.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

ใช้เอฟเฟกต์สเก็ตช์กับเส้นรูปทรง
เอฟเฟกต์สเก็ตช์ทำให้เส้นรูปทรงดูเหมือนถูกวาดด้วยมือ ใช้ Shape.getLineFormat เพื่อเข้าถึงการตั้งค่าเส้น, LineFormat.getSketchFormat เพื่อเข้าถึงการตั้งค่าสเก็ตช์, และ SketchFormat.setSketchType เพื่อเลือกค่าจาก enumeration LineSketchType
โค้ด Python ต่อไปนี้แสดงวิธีใช้เอฟเฟกต์ LineSketchType.Curved อ่านค่าที่กำหนดโดยชัดเจน และลบเอฟเฟกต์ด้วย LineSketchType.None_:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import LineSketchType, Presentation, ShapeType
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 100)
# เข้าถึงรูปแบบเส้นของรูปทรงและรูปแบบสเก็ตช์ของมัน.
sketch_format = shape.getLineFormat().getSketchFormat()
# ใช้เอฟเฟกต์สเก็ตช์.
sketch_format.setSketchType(LineSketchType.Curved)
# อ่านเอฟเฟกต์สเก็ตช์ที่กำหนดโดยตรงให้กับรูปทรง.
explicit_sketch_type = sketch_format.getSketchType()
print(f"Explicit sketch type: {explicit_sketch_type}")
# ลบเอฟเฟกต์สเก็ตช์.
sketch_format.setSketchType(LineSketchType.None_)
finally:
presentation.dispose()
ค่าที่คืนจาก SketchFormat.getSketchType แสดงการตั้งค่าที่กำหนดโดยตรงกับรูปทรง หากการจัดรูปแบบเส้นสามารถสืบทอดจากธีม, มาสเตอร์สไลด์ หรือเลย์เอาต์สไลด์ ให้ใช้ LineFormat.getEffective, เข้าถึง LineFormatEffectiveData.getSketchFormat, แล้วอ่าน SketchFormatEffectiveData.getSketchType ค่าที่มีประสิทธิผลจะแสดงการจัดรูปแบบที่จริง ๆ ถูกนำไปใช้หลังจากสืบทอดเสร็จสิ้น:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("presentation.pptx")
try:
shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
line_format = shape.getLineFormat()
explicit_sketch_type = line_format.getSketchFormat().getSketchType()
effective_line_format = line_format.getEffective()
effective_sketch_type = effective_line_format.getSketchFormat().getSketchType()
print(f"Explicit sketch type: {explicit_sketch_type}")
print(f"Effective sketch type: {effective_sketch_type}")
finally:
presentation.dispose()
จัดรูปแบบสไตล์การเชื่อมต่อ (Join Styles)
ต่อไปนี้คือสามตัวเลือกประเภทการเชื่อมต่อ:
- Round
- Miter
- Bevel
โดยค่าเริ่มต้น PowerPoint จะใช้การตั้งค่า Round เมื่อเชื่อมเส้นสองเส้นที่มุม (เช่น ที่มุมของรูปทรง) อย่างไรก็ตาม หากคุณวาดรูปทรงที่มีมุมคม คุณอาจต้องการตัวเลือก Miter แทน

โค้ด Python ต่อไปนี้สาธิตการสร้างสี่เหลี่ยมสามรูป (ตามภาพด้านบน) โดยใช้การตั้งค่า Join Type เป็น Miter, Bevel, และ Round ตามลำดับ:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, LineJoinStyle, Presentation, SaveFormat, ShapeType
from java.awt import Color
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปสามรูปประเภท Rectangle.
miter_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 75)
bevel_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 210, 20, 150, 75)
round_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 135, 150, 75)
# กำหนดสีเติมสำหรับแต่ละรูปทรงสี่เหลี่ยม.
miter_shape.getFillFormat().setFillType(FillType.Solid)
miter_shape.getFillFormat().getSolidFillColor().setColor(Color.BLACK)
bevel_shape.getFillFormat().setFillType(FillType.Solid)
bevel_shape.getFillFormat().getSolidFillColor().setColor(Color.BLACK)
round_shape.getFillFormat().setFillType(FillType.Solid)
round_shape.getFillFormat().getSolidFillColor().setColor(Color.BLACK)
# กำหนดความกว้างของเส้น.
miter_shape.getLineFormat().setWidth(15)
bevel_shape.getLineFormat().setWidth(15)
round_shape.getLineFormat().setWidth(15)
# กำหนดสีสำหรับเส้นของแต่ละสี่เหลี่ยม.
miter_shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
miter_shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
bevel_shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
bevel_shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
round_shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
round_shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
# กำหนดสไตล์การเชื่อมต่อ.
miter_shape.getLineFormat().setJoinStyle(LineJoinStyle.Miter)
bevel_shape.getLineFormat().setJoinStyle(LineJoinStyle.Bevel)
round_shape.getLineFormat().setJoinStyle(LineJoinStyle.Round)
# เพิ่มข้อความให้แต่ละสี่เหลี่ยม.
miter_shape.getTextFrame().setText("Miter Join Style")
bevel_shape.getTextFrame().setText("Bevel Join Style")
round_shape.getTextFrame().setText("Round Join Style")
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("join_styles.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
เติมสีแบบไล่ระดับ (Gradient Fill)
ใน PowerPoint, Gradient Fill คือตัวเลือกการจัดรูปแบบที่ให้คุณใช้การไล่สีอย่างต่อเนื่องกับรูปทรง ตัวอย่างเช่น คุณสามารถใช้สองสีหรือมากกว่าที่สีหนึ่งค่อย ๆ ผสมลายเข้าสู่สีถัดไป
วิธีการใช้ Gradient Fill กับรูปทรงด้วย Aspose.Slides:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ตั้งค่า FillType ของรูปทรงเป็น
Gradient - ใช้วิธีการ addPresetColor ของคอลเลกชัน GradientStop ที่เปิดเผยโดยคลาส GradientFormat เพื่อเพิ่มสีสองสีที่คุณต้องการพร้อมตำแหน่งที่กำหนดไว้
- บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ PPTX
โค้ด Python ต่อไปนี้แสดงวิธีใช้ Gradient Fill กับวงรี:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, GradientDirection, GradientShape, Presentation, PresetColor, SaveFormat, ShapeType
from java.awt import Color
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปประเภท Ellipse.
shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 150, 75)
# ใช้การจัดรูปแบบ Gradient กับวงรี.
shape.getFillFormat().setFillType(FillType.Gradient)
shape.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear)
# กำหนดทิศทางของ Gradient.
shape.getFillFormat().getGradientFormat().setGradientDirection(GradientDirection.FromCorner2)
# เพิ่มจุดหยุด Gradient สองจุด.
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(1.0, PresetColor.Purple)
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(0.0, PresetColor.Red)
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("gradient_fill.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

หาก Gradient ดูแตกต่างในภาพที่ส่งออกเทียบกับใน PowerPoint ดูที่ Choose a Gradient Rendering Style คุณสามารถเลือกสไตล์การเรนเดอร์โดยไม่ต้องเปลี่ยน Gradient Fill ที่เก็บไว้ในงานนำเสนอ
เติมลวดลาย (Pattern Fill)
ใน PowerPoint, Pattern Fill คือตัวเลือกการจัดรูปแบบที่ให้คุณใช้การออกแบบสองสี—เช่น จุด, แถบ, รูลูกไม้ หรือการตรวจสอบ—กับรูปทรง คุณสามารถกำหนดสีของพื้นหน้าและพื้นหลังของลวดลายได้ตามต้องการ
Aspose.Slides มีลวดลายที่กำหนดไว้ล่วงหน้ากว่า 45 แบบที่คุณสามารถใช้กับรูปทรงเพื่อเพิ่มความสวยงามให้กับงานนำเสนอของคุณ แม้จะเลือกลวดลากำหนดไว้แล้ว คุณก็ยังสามารถระบุสีที่แน่นอนที่ต้องการใช้ได้
วิธีการใช้ Pattern Fill กับรูปทรงด้วย Aspose.Slides:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ตั้งค่า FillType ของรูปทรงเป็น
Pattern - เลือกสไตล์ลวดลายจากตัวเลือกที่กำหนดไว้ล่วงหน้า
- ตั้งค่า Background Color ของลวดลาย
- ตั้งค่า Foreground Color ของลวดลาย
- บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ PPTX
โค้ด Python ต่อไปนี้สาธิตการใช้ Pattern Fill กับสี่เหลี่ยม:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, PatternStyle, Presentation, SaveFormat, ShapeType
from java.awt import Color
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปประเภท Rectangle.
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75)
# ตั้งค่าชนิดการเติมเป็น Pattern.
shape.getFillFormat().setFillType(FillType.Pattern)
# ตั้งค่าสไตล์ลวดลาย.
shape.getFillFormat().getPatternFormat().setPatternStyle(PatternStyle.Trellis)
# ตั้งค่าสีพื้นหลังและสีพื้นหน้าของลวดลาย.
shape.getFillFormat().getPatternFormat().getBackColor().setColor(Color.LIGHT_GRAY)
shape.getFillFormat().getPatternFormat().getForeColor().setColor(Color.YELLOW)
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("pattern_fill.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

เติมรูปภาพ (Picture Fill)
ใน PowerPoint, Picture Fill คือตัวเลือกการจัดรูปแบบที่ให้คุณแทรกรูปภาพเข้าไปในรูปทรง—โดยใช้รูปภาพเป็นพื้นหลังของรูปทรง
วิธีการใช้ Aspose.Slides เพื่อทำ Picture Fill กับรูปทรง:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ตั้งค่า FillType ของรูปทรงเป็น
Picture - ตั้งค่าโหมดการเติมรูปภาพเป็น
Tile(หรือโหมดอื่นที่คุณต้องการ) - สร้างอ็อบเจกต์ PPImage จากรูปภาพที่คุณต้องการใช้
- ส่งภาพนี้ให้เมธอด
SlidesPicture.setImage - บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ PPTX
สมมติว่าเรามีไฟล์ “lotus.png” พร้อมรูปภาพต่อไปนี้:

โค้ด Python ต่อไปนี้แสดงวิธีเติมรูปภาพลงในรูปทรง:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, Images, PictureFillMode, Presentation, SaveFormat, ShapeType
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปประเภท Rectangle.
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 255, 130)
# ตั้งค่าชนิดการเติมเป็น Picture.
shape.getFillFormat().setFillType(FillType.Picture)
# ตั้งค่าโหมดการเติมรูปภาพ.
shape.getFillFormat().getPictureFillFormat().setPictureFillMode(PictureFillMode.Tile)
# โหลดภาพและเพิ่มเข้าไปในทรัพยากรของงานนำเสนอ.
image = Images.fromFile("lotus.png")
picture = presentation.getImages().addImage(image)
image.dispose()
# ตั้งค่ารูปภาพ.
shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture)
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("picture_fill.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

Tile Picture As Texture
หากต้องการตั้งรูปภาพเป็นเท็กซ์เจอร์แบบกระเบื้องและกำหนดพฤติกรรมการกระเบื้อง คุณสามารถใช้เมธอดต่อไปนี้ของคลาส PictureFillFormat:
- setPictureFillMode: ตั้งค่าโหมดการเติมรูปภาพ—
TileหรือStretch - setTileAlignment: กำหนดการจัดตำแหน่งของกระเบื้องภายในรูปทรง
- setTileFlip: ควบคุมว่ากระเบื้องจะถูกพลิกแนวนอน, แนวตั้ง หรือทั้งสองอย่าง
- setTileOffsetX: กำหนดค่าการเลื่อนแนวนอนของกระเบื้อง (หน่วยเป็นพอยต์) จากจุดกำเนิดของรูปทรง
- setTileOffsetY: กำหนดค่าการเลื่อนแนวตั้งของกระเบื้อง (หน่วยเป็นพอยต์) จากจุดกำเนิดของรูปทรง
- setTileScaleX: กำหนดสเกลแนวนอนของกระเบื้องเป็นเปอร์เซ็นต์
- setTileScaleY: กำหนดสเกลแนวตั้งของกระเบื้องเป็นเปอร์เซ็นต์
โค้ดตัวอย่างต่อไปนี้แสดงวิธีเพิ่มรูปทรงสี่เหลี่ยมพร้อม Picture Fill แบบกระเบื้องและกำหนดตัวเลือกการกระเบื้อง:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, Images, PictureFillMode, Presentation, RectangleAlignment, SaveFormat, ShapeType, TileFlip
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
first_slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปสี่เหลี่ยม.
shape = first_slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 190, 95)
# ตั้งค่าชนิดการเติมของรูปทรงเป็น Picture.
shape.getFillFormat().setFillType(FillType.Picture)
# โหลดภาพและเพิ่มเข้าไปในทรัพยากรของงานนำเสนอ.
source_image = Images.fromFile("lotus.png")
presentation_image = presentation.getImages().addImage(source_image)
source_image.dispose()
# กำหนดภาพให้กับรูปทรง.
picture_fill_format = shape.getFillFormat().getPictureFillFormat()
picture_fill_format.getPicture().setImage(presentation_image)
# กำหนดค่าโหมดการเติมรูปภาพและคุณสมบัติการกระเบื้อง.
picture_fill_format.setPictureFillMode(PictureFillMode.Tile)
picture_fill_format.setTileOffsetX(-32)
picture_fill_format.setTileOffsetY(-32)
picture_fill_format.setTileScaleX(50)
picture_fill_format.setTileScaleY(50)
picture_fill_format.setTileAlignment(RectangleAlignment.BottomRight)
picture_fill_format.setTileFlip(TileFlip.FlipBoth)
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("tile.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

เติมสีทึบ (Solid Color Fill)
ใน PowerPoint, Solid Color Fill คือการจัดรูปแบบที่เติมสีเดียวอย่างสม่ำเสมอลงในรูปทรง สีพื้นหลังแบบเรียบนี้จะถูกใช้โดยไม่มีการไล่สี, เท็กซ์เจอร์ หรือ ลวดลายใด ๆ
เพื่อใช้ Solid Color Fill กับรูปทรงด้วย Aspose.Slides ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ตั้งค่า FillType ของรูปทรงเป็น
Solid - กำหนดสีเติมที่คุณต้องการให้กับรูปทรง
- บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ PPTX
โค้ด Python ต่อไปนี้สาธิตการใช้ Solid Color Fill กับสี่เหลี่ยมในสไลด์ PowerPoint:
import jpide
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, Presentation, SaveFormat, ShapeType
from java.awt import Color
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปประเภท Rectangle.
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75)
# ตั้งค่าชนิดการเติมเป็น Solid.
shape.getFillFormat().setFillType(FillType.Solid)
# ตั้งค่าสีเติม.
shape.getFillFormat().getSolidFillColor().setColor(Color.YELLOW)
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("solid_color_fill.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

ตั้งค่าความโปร่งใส (Set Transparency)
ใน PowerPoint เมื่อคุณใช้สีทึบ, Gradient, Picture หรือ Texture Fill กับรูปทรง คุณยังสามารถตั้งค่าระดับความโปร่งใสเพื่อควบคุมความทึบของการเติมได้ ค่าความโปร่งใสสูงจะทำให้รูปทรงใสมากขึ้น ทำให้พื้นหลังหรือวัตถุที่อยู่ใต้หน้าต่างมองเห็นได้บางส่วน
Aspose.Slides ให้คุณตั้งค่าระดับความโปร่งใสโดยปรับค่า alpha ของสีที่ใช้สำหรับการเติม วิธีทำคือ:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ตั้งค่า FillType เป็น
Solid - ใช้ Color เพื่อกำหนดสีที่มีความโปร่งใส (ส่วน
alphaควบคุมความโปร่งใส) - บันทึกงานนำเสนอ
โค้ด Python ต่อไปนี้แสดงวิธีใช้สีเติมแบบโปร่งใสกับสี่เหลี่ยม:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FillType, Presentation, SaveFormat, ShapeType
from java.awt import Color
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปสี่เหลี่ยมสีทึบ.
solid_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75)
# เพิ่มออโต้ชาปสี่เหลี่ยมแบบโปร่งใสเหนือรูปทรงสีทึบ.
transparent_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 80, 80, 150, 75)
transparent_shape.getFillFormat().setFillType(FillType.Solid)
transparent_color = Color(255, 255, 0, 204)
transparent_shape.getFillFormat().getSolidFillColor().setColor(transparent_color)
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("shape_transparency.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

หมุนรูปทรง (Rotate Shapes)
Aspose.Slides ให้คุณหมุนรูปทรงในงานนำเสนอ PowerPoint ซึ่งมีประโยชน์เมื่อต้องจัดตำแหน่งองค์ประกอบภาพตามแนวจัดหรือความต้องการด้านออกแบบ
เพื่อหมุนรูปทรงบนสไลด์ ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ตั้งค่าคุณสมบัติการหมุนของรูปทรงเป็นมุมที่ต้องการ
- บันทึกงานนำเสนอ
โค้ด Python ต่อไปนี้สาธิตการหมุนรูปทรงด้วยมุม 5 องศา:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, ShapeType
# สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ.
presentation = Presentation()
try:
# รับสไลด์แรก.
slide = presentation.getSlides().get_Item(0)
# เพิ่มออโต้ชาปประเภท Rectangle.
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75)
# หมุนรูปทรง 5 องศา.
shape.setRotation(5)
# บันทึกไฟล์ PPTX ไปยังดิสก์.
presentation.save("shape_rotation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

เพิ่มเอฟเฟกต์เบเวล 3 มิติ (Add 3D Bevel Effects)
Aspose.Slides ให้คุณทำเอฟเฟกต์เบเวล 3 มิติให้กับรูปทรงโดยกำหนดคุณสมบัติของ ThreeDFormat
เพื่อเพิ่มเอฟเฟกต์เบเวล 3 มิติให้กับรูปทรง ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- กำหนดค่า ThreeDFormat ของรูปทรงเพื่อระบุการตั้งค่าเบเวล
- บันทึกงานนำเสนอ
โค้ด Python ต่อไปนี้แสดงวิธีใช้เอฟเฟกต์เบเวล 3 มิติกับรูปทรง:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import BevelPresetType, CameraPresetType, FillType, LightRigPresetType, LightingDirection, Presentation, SaveFormat, ShapeType
from java.awt import Color
# สร้างอินสแตนซ์ของคลาส Presentation.
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
# เพิ่มรูปทรงลงในสไลด์.
shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 100, 100)
shape.getFillFormat().setFillType(FillType.Solid)
shape.getFillFormat().getSolidFillColor().setColor(Color.GREEN)
shape.getLineFormat().getFillFormat().setFillType(FillType.Solid)
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(Color.ORANGE)
shape.getLineFormat().setWidth(2.0)
# ตั้งค่าคุณสมบัติ ThreeDFormat ของรูปทรง.
shape.getThreeDFormat().setDepth(4)
shape.getThreeDFormat().getBevelTop().setBevelType(BevelPresetType.Circle)
shape.getThreeDFormat().getBevelTop().setHeight(6)
shape.getThreeDFormat().getBevelTop().setWidth(6)
shape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.OrthographicFront)
shape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.ThreePt)
shape.getThreeDFormat().getLightRig().setDirection(LightingDirection.Top)
# บันทึกงานนำเสนอเป็นไฟล์ PPTX.
presentation.save("3D_bevel_effect.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

เพิ่มเอฟเฟกต์การหมุน 3 มิติ (Add 3D Rotation Effects)
Aspose.Slides ให้คุณทำเอฟเฟกต์การหมุน 3 มิติให้กับรูปทรงโดยกำหนดคุณสมบัติของ ThreeDFormat
เพื่อใช้การหมุน 3 มิติกับรูปทรง:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงไปยังสไลด์ตามตำแหน่งดัชนีของมัน
- เพิ่ม AutoShape ลงในสไลด์
- ใช้เมธอด setCameraType และ setLightType เพื่อกำหนดการหมุน 3 มิติ
- บันทึกงานนำเสนอ
โค้ด Python ต่อไปนี้สาธิตการใช้เอฟเฟกต์การหมุน 3 มิติกับรูปทรง:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import CameraPresetType, LightRigPresetType, Presentation, SaveFormat, ShapeType
# สร้างอินสแตนซ์ของคลาส Presentation.
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 75)
auto_shape.getTextFrame().setText("Hello, Aspose!")
auto_shape.getThreeDFormat().setDepth(6)
auto_shape.getThreeDFormat().getCamera().setRotation(40, 35, 20)
auto_shape.getThreeDFormat().getCamera().setCameraType(CameraPresetType.IsometricLeftUp)
auto_shape.getThreeDFormat().getLightRig().setLightType(LightRigPresetType.Balanced)
# บันทึกงานนำเสนอเป็นไฟล์ PPTX.
presentation.save("3D_rotation_effect.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ผลลัพธ์:

ควบคุมการแสดงผลสีขาว-ดำของรูปทรง (Control Black-and-White Rendering for Shapes)
เมธอด Shape.setBlackWhiteMode ระบุว่ารูปทรงแต่ละอันจะแสดงผลอย่างไรเมื่อดูหรือประมวลผลงานนำเสนอในโหมดสีขาว-ดำ มันไม่ได้เปิดใช้งานการแสดงผลสีขาว-ดำโดยอัตโนมัติ และไม่ได้เปลี่ยนการเติม, เส้น หรือการจัดรูปแบบอื่น ๆ ของรูปทรงในโหมดสีปกติ
ใช้ค่าจากคลาส BlackWhiteMode เพื่อเลือกพฤติกรรมที่ต้องการ ตัวอย่างเช่น Automatic ให้แอปพลิเคชันเรนเดอร์เลือกการแปลง, Gray และ LightGray ใช้สีเทา, BlackWhite ใช้สีดำและสีขาวเท่านั้น, Black และ White บังคับให้เป็นสีเดียว, Color คงสีปกติ, Hidden ไม่แสดงรูปทรงในโหมดสีขาว-ดำ, NotDefined หมายความว่าไม่มีการกำหนดโหมดระดับรูปทรง
โค้ด Python ต่อไปนี้สร้างรูปทรงสีและทำให้มันแสดงเป็นสีเทาในโหมดแสดงผลสีขาว-ดำ:
import jpype
import asposeslides
if not jpile.isJVMStarted():
jpile.startJVM()
from asposeslides.api import BlackWhiteMode, FillType, Presentation, SaveFormat, ShapeType
from java.awt import Color
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 100)
shape.getFillFormat().setFillType(FillType.Solid)
shape.getFillFormat().getSolidFillColor().setColor(Color.ORANGE)
# เก็บการเติมสีส้มในโหมดสี, แต่เรนเดอร์รูปทรงด้วยสีเทาในโหมดสีขาว-ดำ.
shape.setBlackWhiteMode(BlackWhiteMode.Gray)
presentation.save("shape_black_white_mode.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ในโหมดสีปกติ สี่เหลี่ยมยังคงสีส้ม ในเวิร์กโฟลว์แสดงผลสีขาว-ดำ มันใช้สีเทาเพราะโหมดถูกตั้งเป็น Gray ซึ่งช่วยให้คุณเก็บสไลด์สีเต็มไว้พร้อมกำหนดการแสดงผลที่แตกต่างสำหรับการพิมพ์, การแสดงตัวอย่าง หรือเวิร์กโฟลว์อื่น ๆ ที่เคารพการตั้งค่าแสดงผลสีขาว-ดำของงานนำเสนอ
รีเซ็ตการจัดรูปแบบ (Reset Formatting)
โค้ด Python ต่อไปนี้แสดงวิธีรีเซ็ตการจัดรูปแบบของสไลด์และคืนตำแหน่ง, ขนาด, และการจัดรูปแบบของรูปทรงทั้งหมดที่มีตัวแทนใน LayoutSlide ไปยังค่าตั้งต้น:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("sample.pptx")
try:
for slide in presentation.getSlides():
# รีเซ็ตแต่ละรูปทรงบนสไลด์ที่มี placeholder บนเลย์เอาต์.
slide.reset()
presentation.save("reset_formatting.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
คำถามที่พบบ่อย (FAQ)
การจัดรูปแบบรูปทรงมีผลต่อขนาดไฟล์งานนำเสนอสุดท้ายหรือไม่?
ผลกระทบค่อนข้างน้อย ภาพและสื่อที่ฝังอยู่ใช้พื้นที่ไฟล์ส่วนใหญ่ ส่วนพารามิเตอร์ของรูปทรง เช่น สี, เอฟเฟกต์และการไล่สีจะถูกเก็บเป็นเมตาดาทาและเพิ่มขนาดไฟล์อย่างน้อยมาก
ฉันจะตรวจจับรูปทรงบนสไลด์ที่มีการจัดรูปแบบเดียวกันเพื่อที่จะจัดกลุ่มได้อย่างไร?
เปรียบเทียบคุณสมบัติการจัดรูปแบบหลักของแต่ละรูปทรง—การเติม, เส้น, และการตั้งค่าเอฟเฟกต์ หากค่าตรงกันทั้งหมด ให้ถือว่าสไตล์เท่ากันและจัดกลุ่มรูปทรงเหล่านั้น ซึ่งช่วยให้ง่ายต่อการจัดการสไตล์ในภายหลัง
ฉันสามารถบันทึกชุดสไตล์รูปทรงที่กำหนดเองเป็นไฟล์แยกเพื่อใช้ซ้ำในงานนำเสนออื่นได้หรือไม่?
ได้ จัดเก็บรูปทรงตัวอย่างพร้อมสไตล์ที่ต้องการในเทมเพลตสไลด์เดคหรือไฟล์เทมเพลต .POTX เมื่อต้องการสร้างงานนำเสนอใหม่ ให้เปิดเทมเพลต, คัดลอกรูปทรงที่สไตล์ต้องการ และนำไปใช้ใหม่ตามที่ต้องการ