บทนำ

Aspose.Slides FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx ไฟล์ทั้งหมดใน Python โดยไม่มีการพึ่งพา Microsoft Office หรือ runtime ที่เป็นกรรมสิทธิ์ใดๆ.

ไลบรารีนี้ออกแบบมาสำหรับนักพัฒนาที่ต้องการสร้างหรือจัดการไฟล์การนำเสนอโดยอัตโนมัติ: สร้างสไลด์เด็คจากข้อมูล, ดึงข้อความและเมตาดาต้าจากไฟล์ PPTX ที่อัปโหลด, สร้างสายงานการรายงานที่อิงการนำเสนอ, หรือฝังการสร้างการนำเสนอเข้าในเว็บแอปพลิเคชัน เนื่องจาก aspose-slides-foss เป็น Python แท้โดยมีเพียง lxml เป็นการพึ่งพาเดียว มันสามารถปรับใช้ได้อย่างเหมือนกันบน Windows, macOS, Linux, และคอนเทนเนอร์ Docker.

คุณลักษณะหลัก

  • รองรับ PPTX แบบรอบเต็ม: เปิดไฟล์ใดก็ได้ .pptx ไฟล์, แก้ไขเนื้อหา, และบันทึกกลับโดยไม่สูญเสียส่วน XML ที่ไม่รู้จักซึ่งไลบรารียังไม่เข้าใจ.
  • การจัดการสไลด์: เพิ่ม, ลบ, และวนซ้ำสไลด์โดยใช้ prs.slides; การนำเสนอจะเริ่มด้วยสไลด์เปล่า 1 แผ่นหลังจาก slides.Presentation().
  • AutoShapes, ตาราง, และคอนเนคเตอร์: แทรกรูปทรงผ่าน slide.shapes.add_auto_shape(), ข้อมูลตารางผ่าน slide.shapes.add_table(), และคอนเนคเตอร์ภาพระหว่างรูปทรงผ่าน slide.shapes.add_connector().
  • การจัดรูปแบบข้อความแบบ Rich: จัดรูปแบบข้อความในระดับอักขระด้วย PortionFormat: ขนาดฟอนต์, ตัวหนา, ตัวเอียง, ขีดเส้นใต้, และสี ARGB ผ่าน FillType.SOLID และ Color.from_argb().
  • ประเภทการเติม: ใช้ FillType.SOLID, GRADIENT, PATTERN, หรือ PICTURE เติมเต็มให้กับรูปทรงใดก็ได้.
  • เอฟเฟกต์ภาพ: เงานอก, แสงเรืองแสง, ขอบนุ่ม, เบลอ, การสะท้อน, และเงาภายในผ่าน shape.effect_format.
  • 3D formatting: บีเวล, กล้อง, ระบบแสง, วัสดุ, และความลึกการดันออกผ่าน shape.three_d_format.
  • บันทึกผู้พูด: แนบข้อความบันทึกไปยังแต่ละสไลด์ผ่าน notes_slide_manager.add_notes_slide().
  • ความคิดเห็นแบบเธรด: เพิ่มความคิดเห็นพร้อมข้อมูลเมตาของผู้เขียนและตำแหน่งสไลด์.
  • รูปภาพฝัง: ฝังจากเส้นทางไฟล์, ไบต์, หรือ io.BytesIO สตรีม.
  • คุณสมบัติของเอกสาร: อ่านและเขียนคุณสมบัติหลัก, แอป, และคุณสมบัติที่กำหนดเอง.

เริ่มต้นใช้งาน

ติดตั้งจาก PyPI. Python 3.10 หรือใหม่กว่าเป็นสิ่งจำเป็น; lxml จะถูกติดตั้งโดยอัตโนมัติ.

pip install aspose-slides-foss

สร้างการนำเสนอแรกของคุณด้วยรูปทรงและบันทึกมัน:

import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
from aspose.slides_foss import ShapeType

with slides.Presentation() as prs:
    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 400, 120)
    shape.add_text_frame("Hello from Aspose.Slides FOSS!")
    prs.save("hello.pptx", SaveFormat.PPTX)

ใช้เสมอ Presentation ภายใน with บล็อก; สิ่งนี้ทำให้แน่ใจว่าทรัพยากรภายในทั้งหมดจะถูกปล่อยเมื่อบล็อกสิ้นสุด.

ตัวอย่างการจัดรูปแบบข้อความ

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, NullableBool, FillType
from aspose.slides_foss.drawing import Color
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    shape = prs.slides[0].shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 500, 150)
    tf = shape.add_text_frame("Bold heading in corporate blue")
    fmt = tf.paragraphs[0].portions[0].portion_format
    fmt.font_height = 28
    fmt.font_bold = NullableBool.TRUE
    fmt.fill_format.fill_type = FillType.SOLID
    fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 0, 70, 127)
    prs.save("formatted.pptx", SaveFormat.PPTX)

ข้อจำกัดปัจจุบัน

ส่วนต่อไปนี้ทำให้เกิด NotImplementedError ในรุ่นนี้:

  • แผนภูมิ, SmartArt, และอ็อบเจกต์ OLE
  • การเคลื่อนไหวและการเปลี่ยนสไลด์
  • ส่งออกเป็น PDF, HTML, SVG, หรือรูปแบบภาพ
  • ไฮเปอร์ลิงก์, การตั้งค่าการกระทำ, แมโคร VBA, และลายเซ็นดิจิทัล

ส่วน XML ที่ไม่รู้จักที่พบระหว่างการโหลดจะถูกเก็บไว้ตามต้นฉบับเมื่อตอนบันทึก, ดังนั้นไฟล์ PPTX ที่สร้างโดยเครื่องมืออื่นจะทำการรอบทริปได้อย่างปลอดภัย.

ดูเพิ่มเติม