บันทึกงานนำเสนอใน Python
ภาพรวม
หลังจากคุณสร้างงานนำเสนอหรือ เปิดงานนำเสนอที่มีอยู่แล้ว, ใช้เมธอด Presentation.save เพื่อเขียนผลลัพธ์ Aspose.Slides for Python via .NET สามารถบันทึกงานนำเสนอเป็นไฟล์หรือสตรีมในรูปแบบ PowerPoint, OpenDocument, PDF และรูปแบบอื่น ๆ ส่วนต่อไปนี้ครอบคลุมการบันทึกรูปแบบมาตรฐานและตัวเลือกที่มีสำหรับเอาต์พุต PPTX
บันทึกงานนำเสนอเป็นไฟล์
เพื่อบันทึกงานนำเสนอเป็นไฟล์ ให้ส่งพาธออกและค่า SaveFormat ไปยังเมธอด Presentation.save ค่า format จะกำหนดประเภทไฟล์ที่ Aspose.Slides สร้าง
ตัวอย่างต่อไปนี้สร้างงานนำเสนอและบันทึกเป็นไฟล์ PPTX:
import aspose.slides as slides
with slides.Presentation() as presentation:
# เพิ่มหรือแก้ไขเนื้อหาของงานนำเสนอที่นี่.
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX)
บันทึกงานนำเสนอในรูปแบบต้นฉบับ
สำหรับตัวอย่างการตรวจจับไฟล์และสตรีม, พฤติกรรมของงานนำเสนอที่สร้างใหม่, และความแตกต่างระหว่างรูปแบบต้นทางและรูปแบบเอาต์พุต, ดู Determine the Original Presentation Format
ในแอปพลิเคชันการประมวลผลแบบเป็นชุด, รูปแบบอินพุตอาจไม่ทราบล่วงหน้า หลังจากโหลดไฟล์แล้ว ให้อ่านรูปแบบต้นฉบับจากคุณสมบัติ Presentation.source_format ส่งค่าที่ได้จาก SourceFormat ไปยัง SlideUtil.to_save_format เพื่อรับค่า SaveFormat ที่สอดคล้องกัน, จากนั้นใช้ Presentation.save เพื่อเขียนงานนำเสนอที่แก้ไขแล้ว
ตัวอย่างเต็มต่อไปนี้ประมวลผลทุกไฟล์ในโฟลเดอร์อินพุต, ปรับปรุงชื่อเรื่อง, และบันทึกไปยังโฟลเดอร์เอาต์พุตในรูปแบบที่โหลดมา:
from pathlib import Path
import aspose.slides as slides
from aspose.slides.util import SlideUtil
input_directory = Path("Input")
output_directory = Path("Output")
output_directory.mkdir(exist_ok=True)
for input_path in input_directory.iterdir():
if not input_path.is_file():
continue
try:
with slides.Presentation(str(input_path)) as presentation:
source_format = presentation.source_format
save_format = SlideUtil.to_save_format(source_format)
presentation.document_properties.title = "Processed by the batch application"
output_path = output_directory / input_path.name
presentation.save(str(output_path), save_format)
except Exception as exception:
print(f"Cannot process '{input_path}': {exception}")
[SlideUtil.to_save_format] จะแม็พ PPT, PPTX, ODP, PPTM, PPSX, PPSM, POTX, POTM, PPS, POT, OTP, FODP, และ PowerPoint XML ไปยังรูปแบบการบันทึกงานนำเสนอที่สอดคล้องกัน ซึ่งแม็พเฉพาะรูปแบบต้นฉบับของงานนำเสนอ ไม่ได้ออกแบบให้เลือกรูปแบบการส่งออกเช่น PDF, HTML, TIFF หรือรูปภาพ การส่งค่า [SourceFormat] ที่ไม่รองรับหรือไม่ถูกต้องจะทำให้เกิดข้อยกเว้น
ไฟล์ PPT, PPS, และ POT เก่าจะใช้คอนเทนเนอร์ไบนารีเดียวกัน เมื่อโหลดงานนำเสนอจากสตรีมโดยไม่มีส่วนขยายไฟล์ ไฟล์ PPS หรือ POT อาจถูกระบุเป็น PPT หากต้องการคงรักษาชนิดย่อยเหล่านี้ไว้ ให้เก็บชื่อไฟล์ต้นฉบับหรือเมตาดาต้ารูปแบบแยกต่างหากและใช้เมื่อเลือกชื่อไฟล์และรูปแบบเอาต์พุต
บันทึกงานนำเสนอเป็นสตรีม
เพื่อเขียนงานนำเสนอโดยไม่พึ่งพาพาธไฟล์สุดท้าย ให้ส่งสตรีม BinaryIO ที่เขียนได้และค่า SaveFormat ไปยังเมธอด Presentation.save วิธีการนี้มีประโยชน์เมื่อเอาต์พุตต้องส่งคืนจากเว็บเซอร์วิส, จัดเก็บในฐานข้อมูล, หรือประมวลผลในหน่วยความจำ
ตัวอย่างต่อไปนี้บันทึกงานนำเสนอใหม่ไปยังสตรีมไฟล์:
import aspose.slides as slides
with slides.Presentation() as presentation:
with open("Output.pptx", "wb") as output_stream:
presentation.save(output_stream, slides.export.SaveFormat.PPTX)
บันทึกงานนำเสนอด้วยประเภทมุมมองที่กำหนดไว้ล่วงหน้า
คุณสามารถระบุมุมมองที่ PowerPoint จะเปิดงานนำเสนอที่บันทึกไว้เป็นค่าเริ่มต้น ตั้งค่าคุณสมบัติ ViewProperties.last_view เป็นค่า ViewType ก่อนบันทึก
ตัวอย่างต่อไปนี้กำหนดให้มุมมอง Slide Master เป็นมุมมองเริ่มต้น:
import aspose.slides as slides
with slides.Presentation() as presentation:
presentation.view_properties.last_view = slides.ViewType.SLIDE_MASTER_VIEW
presentation.save("SlideMasterView.pptx", slides.export.SaveFormat.PPTX)
บันทึกงานนำเสนอในรูปแบบ Strict Office Open XML
เพื่อสร้างไฟล์ PPTX ที่สอดคล้องกับโปรไฟล์ Strict ของ Office Open XML, สร้างอินสแตนซ์ PptxOptions แล้วตั้งค่าคุณสมบัติ conformance เป็น Conformance.ISO_29500_2008_STRICT จากนั้นส่งอ็อปชันไปยังเมธอด Presentation.save
import aspose.slides as slides
options = slides.export.PptxOptions()
options.conformance = slides.export.Conformance.ISO_29500_2008_STRICT
with slides.Presentation() as presentation:
presentation.save("StrictOfficeOpenXml.pptx", slides.export.SaveFormat.PPTX, options)
บันทึกงานนำเสนอในรูปแบบ Office Open XML ในโหมด Zip64
ไฟล์ ZIP มาตรฐานจำกัดขนาดข้อมูลที่บีบอัดและไม่บีบอัดของแต่ละรายการ, ขนาดรวมของไฟล์ ZIP, และจำนวนรายการ เนื่องจากไฟล์ PPTX เป็นไฟล์ ZIP การนำเสนอที่มีขนาดใหญ่มากอาจเกินขีดจำกัดเหล่านี้ ส่วนขยาย ZIP64 จะเพิ่มขีดจำกัดด้านขนาดและจำนวนรายการที่ใช้ได้
ใช้คุณสมบัติ PptxOptions.zip_64_mode เพื่อควบคุมว่า Aspose.Slides จะเขียนส่วนขยาย ZIP64 หรือไม่:
IF_NECESSARYใช้ ZIP64 เฉพาะเมื่องานนำเสนอเกินขีดจำกัด ZIP มาตรฐาน นี่คือโหมดเริ่มต้นNEVERปิดการใช้งานส่วนขยาย ZIP64ALWAYSเขียนส่วนขยาย ZIP64 เสมอ
ตัวอย่างต่อไปนี้เปิดใช้งานส่วนขยาย ZIP64 สำหรับงานนำเสนอเอาต์พุตเสมอ:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.zip_64_mode = slides.export.Zip64Mode.ALWAYS
presentation.save("OutputZip64.pptx", slides.export.SaveFormat.PPTX, options)
Warning
หากใช้Zip64Mode.NEVER และงานนำเสนอไม่สามารถพอดีกับขีดจำกัด ZIP มาตรฐาน, การบันทึกจะทำให้เกิดข้อยกเว้น PptxException
บันทึกงานนำเสนอในรูปแบบ Office Open XML ด้วยระดับการบีบอัด
สำหรับเอาต์พุต PPTX คุณสามารถปรับสมดุลระหว่างความเร็วในการบันทึกและขนาดไฟล์โดยตั้งค่าคุณสมบัติ PptxOptions.compression_level ตัวนับจำนวน [CompressionLevel] มีค่าดังนี้:
NONEเก็บข้อมูลโดยไม่มีการบีบอัดLEVEL1ให้การบีบอัดที่เร็วที่สุดและขนาดไฟล์บีบอัดมากที่สุดLEVEL2ถึงLEVEL5ช่วยให้ได้ไฟล์ขนาดเล็กลงโดยยอมรับความเร็วในการบันทึกที่ช้าลงอย่างต่อเนื่องLEVEL6สมดุลระหว่างความเร็วและขนาดไฟล์ นี่คือระดับเริ่มต้นLEVEL7และLEVEL8ให้ความสำคัญกับไฟล์ขนาดเล็กกว่ามากกว่าความเร็วในการบันทึกLEVEL9ให้การบีบอัดที่แรงที่สุดแต่ต้องใช้เวลาประมวลผลมากที่สุด
ตัวอย่างต่อไปนี้บันทึกงานนำเสนอโดยไม่มีการบีบอัด:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.NONE
presentation.save("OutputNoCompression.pptx", slides.export.SaveFormat.PPTX, options)
ตัวอย่างต่อไปนี้ใช้ระดับการบีบอัดสูงสุด:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.compression_level = slides.export.CompressionLevel.LEVEL9
presentation.save("OutputMaximumCompression.pptx", slides.export.SaveFormat.PPTX, options)
บันทึกงานนำเสนอโดยไม่รีเฟรชรูปย่อ
เมื่องานนำเสนอถูกบันทึกเป็น PPTX, คุณสมบัติ PptxOptions.refresh_thumbnail จะควบคุมรูปย่อของเอกสาร:
Trueสร้างรูปย่อใหม่ระหว่างการบันทึก นี่เป็นค่าเริ่มต้นFalseคงรูปย่อเดิมไว้ หากงานนำเสนอไม่มีรูปย่อ Aspose.Slides จะไม่สร้างใหม่
ตัวอย่างต่อไปนี้บันทึกงานนำเสนอโดยไม่รีเฟรชรูปย่อ:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
options = slides.export.PptxOptions()
options.refresh_thumbnail = False
presentation.save("Output.pptx", slides.export.SaveFormat.PPTX, options)
Note
การปิดการรีเฟรชรูปย่อสามารถลดเวลาที่ต้องใช้ในการบันทึกไฟล์ PPTX ได้Note
Aspose มี PowerPoint Splitter ฟรีที่สร้างด้วย Aspose.Slides API ซึ่งสามารถบันทึกสไลด์ที่เลือกจากงานนำเสนอเป็นไฟล์ PPT หรือ PPTX แยกกันคำถามที่พบบ่อย
Aspose.Slides รองรับการบันทึกแบบเพิ่มทีละส่วนหรือ “บันทึกอย่างเร็ว” หรือไม่?
ไม่. การบันทึกแต่ละครั้งจะเขียนไฟล์ผลลัพธ์เต็มรูปแบบแทนการอัปเดตเฉพาะส่วนที่เปลี่ยนแปลง
หลาย Thread สามารถบันทึกอินสแตนซ์ Presentation เดียวกันได้หรือไม่?
ไม่. อินสแตนซ์ Presentation is not thread-safe การเข้าถึงและบันทึกแต่ละอินสแตนซ์ควรทำจาก Thread เพียงหนึ่งเท่านั้น
ลิงก์และไฟล์ที่เชื่อมภายนอกจะเกิดอะไรขึ้นเมื่อบันทึกงานนำเสนอ?
Hyperlinks จะคงอยู่ในงานนำเสนอ Aspose.Slides ไม่คัดลอกไฟล์ที่เชื่อมภายนอก ดังนั้นงานนำเสนอที่บันทึกไว้ต้องสามารถเข้าถึงตำแหน่งไฟล์เหล่านั้นได้
ฉันสามารถบันทึกเมตาดาต้าเอกสาร เช่น ผู้เขียน, ชื่อเรื่อง, บริษัท, และวันที่สร้างได้หรือไม่?
ได้. ตั้งค่าคุณสมบัติเอกสารที่เหมาะสม [/slides/th/python-net/presentation-properties/] ก่อนบันทึก และ Aspose.Slides จะเขียนค่าต่าง ๆ ลงในไฟล์เอาต์พุต