จัดรูปแบบรูปร่าง PowerPoint ใน Python ผ่าน Java

บทนำ

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

format-shape-powerpoint

Aspose.Slides for Python via Java มีคลาสและเมธอดที่ช่วยให้คุณจัดรูปแบบรูปร่างโดยใช้ตัวเลือกเดียวกันกับที่มีใน PowerPoint

จัดรูปแบบเส้น

โดยใช้ Aspose.Slides คุณสามารถระบุสไตล์เส้นที่กำหนดเองสำหรับรูปร่าง ขั้นตอนต่อไปนี้สรุปขั้นตอนการทำงาน:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ตั้งค่าLineStyleของรูปร่าง
  5. ตั้งค่าความกว้างของเส้น
  6. ตั้งค่าDashStyleของเส้น
  7. ตั้งค่าสีของเส้นสำหรับรูปร่าง
  8. บันทึกงานนำเสนอที่แก้ไขแล้วเป็นไฟล์ PPTX

โค้ดต่อไปนี้แสดงวิธีจัดรูปแบบAutoShapeรูปสี่เหลี่ยมผืนผ้า:

import jpype
import asposeslides

if not jpile.isJVMStarted():
    jpile.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)

    # เพิ่มรูปร่างอัตโนมัติประเภทสี่เหลี่ยมผืนผ้า
    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()

ผลลัพธ์:

The formatted lines in the presentation

ใช้เอฟเฟกต์สเก็ตช์กับเส้นของรูปร่าง

เอฟเฟกต์สเก็ตช์ทำให้เส้นของรูปร่างดูเหมือนวาดด้วยมือ ใช้Shape.getLineFormatเพื่อเข้าถึงการตั้งค่าเส้น, LineFormat.getSketchFormatเพื่อเข้าถึงการตั้งค่าสเก็ตช์, และSketchFormat.setSketchTypeเพื่อเลือกค่าจาก enumerationLineSketchType

โค้ด 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()

จัดรูปแบบสไตล์การเชื่อมต่อ

ต่อไปนี้คือสามตัวเลือกประเภทการเชื่อมต่อ:

  • Round
  • Miter
  • Bevel

โดยค่าเริ่มต้น PowerPoint จะใช้การตั้งค่าRound เมื่อเชื่อมเส้นสองเส้นที่มุม (เช่นที่มุมของรูปร่าง) อย่างไรก็ตาม หากคุณวาดรูปร่างที่มีมุมคม คุณอาจต้องการเลือกตัวเลือกMiter

The join style in the presentation

โค้ด Python ต่อไปนี้สาธิตวิธีสร้างสี่เหลี่ยมสามรายการ (ตามภาพด้านบน) โดยใช้การตั้งค่าการเชื่อมต่อ 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)

    # เพิ่มรูปร่างอัตโนมัติสามรูปประเภทสี่เหลี่ยมผืนผ้า
    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:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ตั้งค่าFillTypeของรูปร่างเป็นGradient
  5. ใช้วิธีaddPresetColorของคอลเลคชัน GradientStop เพื่อเพิ่มสีที่ต้องการสองสีพร้อมตำแหน่งที่กำหนดในคลาสGradientFormat
  6. บันทึกงานนำเสนอที่แก้ไขแล้วเป็นไฟล์ 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)

        # เพิ่มรูปร่างอัตโนมัติประเภทวงรี
        shape = slide.getShapes().addAutoShape(ShapeType.Ellipse, 50, 50, 150, 75)

        # ใช้การจัดรูปแบบไล่ระดับสีกับวงรี
        shape.getFillFormat().setFillType(FillType.Gradient)
        shape.getFillFormat().getGradientFormat().setGradientShape(GradientShape.Linear)

        # ตั้งค่าทิศทางของการไล่ระดับสี
        shape.getFillFormat().getGradientFormat().setGradientDirection(GradientDirection.FromCorner2)

        # เพิ่มจุดหยุดไล่ระดับสีสองจุด
        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()

ผลลัพธ์:

The ellipse with gradient fill

เติมลาย (Pattern Fill)

ใน PowerPoint, Pattern Fill เป็นตัวเลือกการจัดรูปแบบที่ให้คุณใส่การออกแบบสองสี—เช่นจุด, ลายเส้น, ลายตะแกรง, หรือลายสลับ—ลงในรูปร่าง คุณสามารถเลือกสีที่กำหนดเองสำหรับสีพื้นหน้าและสีพื้นหลังของลายได้

Aspose.Slides มีลายแบบที่กำหนดล่วงหน้า กว่า 45 แบบที่คุณสามารถใช้กับรูปร่างเพื่อเพิ่มความสวยงามให้กับงานนำเสนอ ของคุณ แม้จะเลือกลายแบบที่กำหนดแล้ว คุณก็ยังสามารถระบุสีที่ต้องการใช้ได้อย่างแม่นยำ

ขั้นตอนการใช้ Pattern Fill กับรูปร่างโดยใช้ Aspose.Slides มีดังนี้:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ตั้งค่าFillTypeของรูปร่างเป็นPattern
  5. เลือกสไตล์ลายจากตัวเลือกที่กำหนดล่วงหน้า
  6. ตั้งค่าBackground Colorของลาย
  7. ตั้งค่าForeground Colorของลาย
  8. บันทึกงานนำเสนอที่แก้ไขแล้วเป็นไฟล์ 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)

    # เพิ่มรูปร่างอัตโนมัติประเภทสี่เหลี่ยมผืนผ้า
    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()

ผลลัพธ์:

The rectangle with pattern fill

เติมรูปภาพ (Picture Fill)

ใน PowerPoint, Picture Fill เป็นตัวเลือกการจัดรูปแบบที่ให้คุณแทรกรูปภาพภายในรูปร่าง—โดยใช้รูปภาพเป็นพื้นหลังของรูปร่าง

นี่คือวิธีใช้ Aspose.Slides เพื่อเติมรูปภาพลงในรูปร่าง:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ตั้งค่าFillTypeของรูปร่างเป็นPicture
  5. ตั้งค่าโหมดการเติมรูปภาพเป็นTile (หรือโหมดอื่นที่ต้องการ)
  6. สร้างอ็อบเจกต์PPImageจากภาพที่ต้องการใช้
  7. ส่งภาพไปยังเมธอดSlidesPicture.setImage
  8. บันทึกงานนำเสนอที่แก้ไขแล้วเป็นไฟล์ PPTX

สมมติว่าเรามีไฟล์"lotus.png"พร้อมรูปภาพต่อไปนี้:

The lotus picture

โค้ด 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)

    # เพิ่มรูปร่างอัตโนมัติประเภทสี่เหลี่ยมผืนผ้า
    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()

ผลลัพธ์:

The shape with picture fill

Tile Picture As Texture

หากต้องการตั้งค่ารูปภาพแบบต่อเป็นพื้นผิวและปรับพฤติกรรมการต่อเป็นกระเบื้อง คุณสามารถใช้เมธอดต่อไปนี้ของคลาสPictureFillFormat:

  • setPictureFillMode: ตั้งค่าโหมดการเติมรูปภาพ—Tile หรือ Stretch
  • setTileAlignment: กำหนดการจัดแนวของกระเบื้องภายในรูปร่าง
  • setTileFlip: ควบคุมการพลิกกระเบื้องในแนวนอน, แนวตั้ง หรือทั้งสองอย่าง
  • setTileOffsetX: ตั้งค่าการเลื่อนระดับแนวนอนของกระเบื้อง (หน่วย points) จากจุดกำเนิดของรูปร่าง
  • setTileOffsetY: ตั้งค่าการเลื่อนระดับแนวตั้งของกระเบื้อง (หน่วย points) จากจุดกำเนิดของรูปร่าง
  • setTileScaleX: กำหนดสเกลแนวนอนของกระเบื้องเป็นเปอร์เซ็นต์
  • setTileScaleY: กำหนดสเกลแนวตั้งของกระเบื้องเป็นเปอร์เซ็นต์

โค้ดตัวอย่างต่อไปนี้แสดงวิธีเพิ่มรูปร่างสี่เหลี่ยมที่ใช้การเติมรูปภาพแบบต่อกระเบื้องและกำหนดตัวเลือกกระเบื้อง:

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()

ผลลัพธ์:

The tile options

เติมสีทึบ (Solid Color Fill)

ใน PowerPoint, Solid Color Fill เป็นตัวเลือกการจัดรูปแบบที่เติมรูปร่างด้วยสีเดียวที่สม่ำเสมอ สีพื้นหลังแบบเรียบนี้ไม่มีการไล่สี, ส纹 หรือลายใด ๆ

เพื่อใช้ Solid Color Fill กับรูปร่างโดยใช้ Aspose.Slides ให้ทำตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ตั้งค่าFillTypeของรูปร่างเป็นSolid
  5. กำหนดสีเติมที่คุณต้องการให้กับรูปร่าง
  6. บันทึกงานนำเสนอที่แก้ไขแล้วเป็นไฟล์ PPTX

โค้ด Python ต่อไปนี้แสดงวิธีใช้ Solid Color Fill กับสี่เหลี่ยมในสไลด์ PowerPoint:

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)

    # เพิ่มรูปร่างอัตโนมัติประเภทสี่เหลี่ยมผืนผ้า
    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()

ผลลัพธ์:

The shape with solid color fill

ตั้งค่าความโปร่งใส (Set Transparency)

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

Aspose.Slides ให้คุณกำหนดระดับความโปร่งใสโดยปรับค่าอัลฟาในสีที่ใช้เติม นี่คือลำดับขั้นตอน:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ตั้งค่าFillTypeเป็นSolid
  5. ใช้Colorเพื่อกำหนดสีพร้อมค่าโปร่งใส (คอมโพเนนต์ alpha ควบคุมความโปร่งใส)
  6. บันทึกงานนำเสนอ

โค้ด 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()

ผลลัพธ์:

The transparent shape

หมุนรูปร่าง (Rotate Shapes)

Aspose.Slides ช่วยให้คุณหมุนรูปร่างในงานนำเสนอ PowerPoint ซึ่งเป็นประโยชน์เมื่อกำหนดตำแหน่งขององค์ประกอบภาพตามการจัดแนวหรือการออกแบบเฉพาะ

ขั้นตอนการหมุนรูปร่างบนสไลด์:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ตั้งค่าคุณสมบัติการหมุนของรูปร่างเป็นมุมที่ต้องการ
  5. บันทึกงานนำเสนอ

โค้ด 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)

    # เพิ่มรูปร่างอัตโนมัติประเภทสี่เหลี่ยมผืนผ้า
    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()

ผลลัพธ์:

The shape rotation

เพิ่มเอฟเฟกต์ขอบ 3 มิติ (Add 3D Bevel Effects)

Aspose.Slides ให้คุณใช้เอฟเฟกต์ขอบ 3 มิติบนรูปร่างโดยกำหนดคุณสมบัติThreeDFormat

ขั้นตอนการเพิ่มเอฟเฟกต์ขอบ 3 มิติให้กับรูปร่าง:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. กำหนดค่าThreeDFormatของรูปร่างเพื่อระบุการตั้งค่าขอบ
  5. บันทึกงานนำเสนอ

โค้ด 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()

ผลลัพธ์:

The 3D bevel effect

เพิ่มเอฟเฟกต์การหมุน 3 มิติ (Add 3D Rotation Effects)

Aspose.Slides ให้คุณใช้เอฟเฟกต์การหมุน 3 มิติบนรูปร่างโดยกำหนดคุณสมบัติThreeDFormat

ขั้นตอนการใช้การหมุน 3 มิติบนรูปร่าง:

  1. สร้างอินสแตนซ์ของคลาสPresentation
  2. รับอ้างอิงถึงสไลด์ตามดัชนีของมัน
  3. เพิ่มAutoShapeลงในสไลด์
  4. ใช้เมธอดsetCameraTypeและsetLightTypeเพื่อกำหนดการหมุน 3 มิติ
  5. บันทึกงานนำเสนอ

โค้ด 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()

ผลลัพธ์:

The 3D rotation effect

ควบคุมการแสดงผลสีขาว-ดำของรูปร่าง (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 jpype.isJVMStarted():
    jpype.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 ต่อไปนี้แสดงวิธีรีเซ็ตการจัดรูปแบบของสไลด์และคืนค่าตำแหน่ง, ขนาด, และการจัดรูปแบบของรูปร่างทั้งหมดที่มี placeholder บน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 จากนั้นเมื่อต้องสร้างงานนำเสนอใหม่ ให้เปิดแม่แบบนั้น, คัดลอกรูปร่างที่มีสไตล์ที่ต้องการ, และนำการจัดรูปแบบกลับไปใช้ตามที่จำเป็น