บทนำ
Aspose.Slides FOSS for Python มีให้ใช้งานบน PyPI แล้ว: ไลบรารีฟรีที่มีใบอนุญาต MIT สำหรับการสร้าง, อ่าน และแก้ไขไฟล์ PowerPoint .pptx อย่างเต็มรูปแบบใน Python โดยไม่ต้องพึ่งพา Microsoft Office หรือ runtime ที่เป็นกรรมสิทธิ์ใด ๆ.
ไลบรารีนี้ออกแบบมาสำหรับนักพัฒนาที่ต้องการสร้างหรือจัดการไฟล์พรีเซนเทชันโดยโปรแกรม: การทำอัตโนมัติของสไลด์เด็คจากข้อมูล, การสกัดข้อความและเมตาดาต้าจากไฟล์ PPTX ที่อัปโหลด, การสร้างไพป์ไลน์การรายงานที่อิงพรีเซนเทชัน, หรือการฝังการสร้างพรีเซนเทชันลงในแอปพลิเคชันเว็บ. เนื่องจาก aspose-slides-foss เป็น Python แท้โดยมีเพียง lxml เป็นการพึ่งพาเดียว, มันสามารถปรับใช้ได้เหมือนกันบน Windows, macOS, Linux, และคอนเทนเนอร์ Docker.
คุณสมบัติหลัก
- Full round-trip PPTX support: เปิดไฟล์
.pptxใดก็ได้, แก้ไขเนื้อหาและบันทึกกลับโดยไม่สูญเสียส่วน XML ที่ไม่รู้จักซึ่งไลบรารียังไม่เข้าใจ - Slides management: เพิ่ม, ลบและวนซ้ำสไลด์โดยใช้
prs.slides; การนำเสนอจะเริ่มด้วยสไลด์เปล่า 1 แผ่นหลังจากslides.Presentation() - AutoShapes, Tables, and Connectors: แทรกรูปทรงผ่าน
slide.shapes.add_auto_shape(), ข้อมูลตารางผ่านslide.shapes.add_table(), และตัวเชื่อมต่อภาพระหว่างรูปทรงผ่านslide.shapes.add_connector() - Rich text formatting: จัดรูปแบบข้อความในระดับอักขระด้วย
PortionFormat: ขนาดฟอนต์, ตัวหนา, ตัวเอียง, ขีดเส้นใต้, และสี ARGB ผ่านFillType.SOLIDและColor.from_argb() - Fill types: ใช้การเติม
FillType.SOLID,GRADIENT,PATTERNหรือPICTUREกับรูปทรงใดก็ได้ - Visual effects: เงานอก, แสงเรืองแสง, ขอบนุ่ม, เบลอ, การสะท้อน, และเงาภายในผ่าน
shape.effect_format - 3D formatting: เบเวล, กล้อง, ระบบแสง, วัสดุ, และความลึกการดันออกผ่าน
shape.three_d_format - Speaker notes: แนบข้อความบันทึกไปยังแต่ละสไลด์ผ่าน
notes_slide_manager.add_notes_slide() - Threaded comments: เพิ่มคอมเมนต์พร้อมข้อมูลเมตาของผู้เขียนและตำแหน่งสไลด์
- Embedded images: ฝังจากเส้นทางไฟล์, ไบต์, หรือสตรีม
io.BytesIO - Document properties: อ่านและเขียนคุณสมบัติหลัก, แอป, และคุณสมบัติที่กำหนดเอง
เริ่มต้นใช้งาน
ติดตั้งจาก 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 ที่สร้างโดยเครื่องมืออื่นจึงสามารถทำการรอบทริปได้อย่างปลอดภัย.