ผสานการนำเสนออย่างมีประสิทธิภาพด้วย Python

Contents
[ ]

ภาพรวม

Aspose.Slides for Python via .NET ผสานการนำเสนอโดยการโคลนสไลด์จากหนึ่ง การนำเสนอ ไปยังอีกหนึ่ง การดำเนินการหลักคือ SlideCollection.add_clone, ซึ่งสามารถรักษาการจัดรูปแบบของสไลด์ต้นฉบับหรือแนบสไลด์ที่โคลนไว้กับมาสเตอร์หรือเลเอาต์ในการนำเสนอปลายทางได้

บทความนี้จะครอบคลุมขั้นตอนการผสานที่พบบ่อยที่สุด:

  • ผสานสไลด์ทั้งหมดโดยคงการจัดรูปแบบต้นฉบับไว้;
  • ผสานสไลด์ที่เลือก;
  • ใช้มาสเตอร์จากการนำเสนอปลายทาง;
  • ใช้เลเอาต์เฉพาะจากการนำเสนอปลายทาง;
  • ปรับขนาดสไลด์ที่แตกต่างกันให้เท่ากันก่อนผสาน;
  • เพิ่มสไลด์ที่โคลนลงในส่วน;
  • ผสานการนำเสนอหลายไฟล์ในเวิร์กโฟลว์แบบ end‑to‑end;
  • จัดการมาสเตอร์, แหล่งข้อมูล, โน๊ต, ความคิดเห็น, สื่อ, ฟอนต์, รหัสผ่าน, ไฟล์ขนาดใหญ่, และข้อกังวลเรื่องการทำงานหลายเธรด

ผลของการโคลนสไลด์ต่อมาสเตอร์และเลเอาต์

สไลด์สืบทอดรูปลักษณ์ส่วนใหญ่จากเลเอาต์และมาสเตอร์ ดังนั้นการเลือกโอเวอร์โหลดการโคลนอาจกำหนดว่าสตรีบที่ผสานแล้วจะถูกรวมเข้ากับการนำเสนอปลายทางอย่างไร

ใช้ SlideCollection.add_clone ด้วยวิธีใดวิธีหนึ่งต่อไปนี้:

  • add_clone(source_slide) — รักษาเลเอาต์และการจัดรูปแบบของสไลด์ต้นฉบับ เมื่อจำเป็น มาสเตอร์ต้นฉบับจะถูกโคลนเข้าสู่การนำเสนอปลายทางโดยอัตโนมัติ Aspose.Slides จะติดตามมาสเตอร์ที่โคลนอัตโนมัติเพื่อป้องกันการโคลนมาสเตอร์เดียวซ้ำหลายครั้ง
  • add_clone(source_slide, destination_master, allow_clone_missing_layout) — แนบสไลด์ที่โคลนกับ IMasterSlide ปลายทางที่ระบุ Aspose.Slides จะค้นหาเลเอาต์ที่ตรงกันภายใต้มาสเตอร์นั้นตามประเภทหรือชื่อของเลเอาต์
  • add_clone(source_slide, destination_layout) — แนบสไลด์ที่โคลนโดยตรงกับ ILayoutSlide ปลายทางที่ระบุ

มาสเตอร์หรือเลเอาต์ที่ส่งให้กับโอเวอร์โหลด add_clone ต้องเป็นของ การนำเสนอปลายทาง ไม่ใช่ของการนำเสนอแหล่ง

ผสานการนำเสนอทั้งหมดและคงการจัดรูปแบบต้นฉบับ

วิธีผสานที่ง่ายที่สุดคือคัดลอกทุกสไลด์จากการนำเสนอแหล่งไปยังการนำเสนอปลายทาง นี่เป็นตัวเลือกที่เหมาะสมเมื่อสไลด์ที่นำเข้าควรคงธีม, มาสเตอร์, และความสัมพันธ์ของเลเอาต์เดิมไว้

import aspose.slides as slides

with slides.Presentation("destination.pptx") as destination:
    with slides.Presentation("source.pptx") as source:
        for slide in source.slides:
            destination.slides.add_clone(slide)

        destination.save("merged.pptx", slides.export.SaveFormat.PPTX)

การนำเสนอผลลัพธ์อาจมีหลายมาสเตอร์เมื่อแหล่งและปลายทางใช้การออกแบบที่แตกต่างกัน นี่เป็นพฤติกรรมที่คาดหวังเมื่อต้องการคงการจัดรูปแบบของแหล่งไว้

ผสานสไลด์ที่เลือก

คุณไม่จำเป็นต้องโคลนทุกสไลด์ ตัวอย่างต่อไปนี้จะนำเข้าตัวอย่างสไลด์ที่เลือกจากการนำเสนอแหล่งเท่านั้น

import aspose.slides as slides

with slides.Presentation("destination.pptx") as destination:
    with slides.Presentation("source.pptx") as source:
        slide_indexes = [0, 2, 4]

        for index in slide_indexes:
            destination.slides.add_clone(source.slides[index])

        destination.save("merged-selected-slides.pptx", slides.export.SaveFormat.PPTX)

ตรวจสอบดัชนีสไลด์ก่อนทำการโคลนเมื่อมาจากการป้อนข้อมูลของผู้ใช้หรือจากการกำหนดค่าภายนอก

ผสานสไลด์โดยใช้มาสเตอร์ปลายทาง

ใช้โอเวอร์โหลด add_clone(source_slide, destination_master, allow_clone_missing_layout) เมื่อสไลด์ที่นำเข้าควรปฏิบัติตามมาสเตอร์ที่มีอยู่แล้วในการนำเสนอปลายทาง

import aspose.slides as slides

with slides.Presentation("destination.pptx") as destination:
    with slides.Presentation("source.pptx") as source:
        destination_master = destination.masters[0]

        for slide in source.slides:
            destination.slides.add_clone(slide, destination_master, True)

        destination.save("merged-with-destination-master.pptx", slides.export.SaveFormat.PPTX)

Aspose.Slides จะเลือกเลเอาต์ที่เหมาะสมภายใต้มาสเตอร์ที่ระบุโดยการจับคู่ประเภทหรือชื่อของเลเอาต์ต้นฉบับ หากไม่มีเลเอาต์ที่เหมาะสมและ allow_clone_missing_layout เป็น True เลเอาต์ต้นฉบับจะถูกโคลนเพื่อให้สไลด์สามารถเพิ่มได้ หากเป็น False จะเกิด PptxEditException ขึ้น

ใช้ False เมื่อคุณต้องการให้การผสานล้มเหลวแทนที่จะเพิ่มเลเอาต์ใหม่ลงในมาสเตอร์ปลายทาง

ผสานสไลด์โดยใช้เลเอาต์ปลายทางเฉพาะ

ใช้โอเวอร์โหลด add_clone(source_slide, destination_layout) เมื่อคุณทราบอย่างชัดเจนว่าเลเอาต์ปลายทางที่สไลด์นำเข้าควรใช้คืออะไร

import aspose.slides as slides

with slides.Presentation("destination.pptx") as destination:
    with slides.Presentation("source.pptx") as source:
        destination_layout = destination.layout_slides[0]

        for slide in source.slides:
            destination.slides.add_clone(slide, destination_layout)

        destination.save("merged-with-destination-layout.pptx", slides.export.SaveFormat.PPTX)

การใช้เลเอาต์ปลายทางจะเปลี่ยนความสัมพันธ์ของเลเอาต์ที่สืบทอด; ไม่ได้ออกแบบเนื้อหาของสไลด์ต้นฉบับใหม่ หากเลเอาต์ต้นฉบับและปลายทางมีโครงสร้าง placeholder ที่แตกต่างกัน ให้วิเคราะห์ผลลัพธ์เพื่อยืนยันว่าการจัดรูปแบบและพฤติกรรมของ placeholder ที่สืบทอดนั้นเหมาะสมหรือไม่

ผสานการนำเสนอที่มีขนาดสไลด์ต่างกัน

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

วิธีปฏิบัติที่เป็นประโยชน์คือปรับขนาดการนำเสนอแหล่งก่อนทำการโคลน วิธี SlideSize.set_size สามารถปรับขนาดเนื้อหาที่มีอยู่พร้อมกับการเปลี่ยนขนาดสไลด์ SlideSizeScaleType.ENSURE_FIT จะปรับขนาดเนื้อหาให้พอดีกับขนาดที่ร้องขอ

import aspose.slides as slides

with slides.Presentation("destination.pptx") as destination:
    with slides.Presentation("source.pptx") as source:
        if (
            source.slide_size.size.width != destination.slide_size.size.width
            or source.slide_size.size.height != destination.slide_size.size.height
        ):
            source.slide_size.set_size(
                destination.slide_size.size.width,
                destination.slide_size.size.height,
                slides.SlideSizeScaleType.ENSURE_FIT)

        for slide in source.slides:
            destination.slides.add_clone(slide)

        destination.save("merged-same-slide-size.pptx", slides.export.SaveFormat.PPTX)

การปรับขนาดจะเปลี่ยนวัตถุการนำเสนอแหล่งในหน่วยความจำ หากคุณต้องการให้การนำเสนอแหล่งต้นฉบับคงเดิมสำหรับการทำงานอื่น ให้เปิดอินสแตนซ์แยกสำหรับการผสาน

ผสานสไลด์ลงในส่วนของการนำเสนอ

ลูปโคลนสไลด์พื้นฐานไม่สร้างลำดับชั้นของส่วนจากการนำเสนอแหล่ง หากส่วนมีความสำคัญในผลลัพธ์ ให้สร้างหรือเลือกส่วนในการนำเสนอปลายทางและโคลนสไลด์ลงในส่วนเหล่านั้นอย่างชัดเจนด้วย SlideCollection.add_clone

import aspose.slides as slides

with slides.Presentation("destination.pptx") as destination:
    with slides.Presentation("source.pptx") as source:
        imported_section = destination.sections.append_empty_section("Imported slides")

        for slide in source.slides:
            destination.slides.add_clone(slide, imported_section)

        destination.save("merged-with-section.pptx", slides.export.SaveFormat.PPTX)

สไลด์ที่โคลนจะถูกเพิ่มต่อท้ายส่วนปลายทางที่ระบุ เพื่อคงหลายส่วนจากแหล่ง ให้วนลูปผ่าน Presentation.sections, ดึงสไลด์ปัจจุบันของแต่ละส่วนด้วย Section.get_slides_list_of_section, สร้างส่วนในปลายทางใหม่และโคลนสไลด์แต่ละอันเข้าไปในส่วนที่สอดคล้องกัน ดูตัวอย่างการจัดการส่วนสไลด์ที่ Manage Slide Sections เพื่อดูตัวอย่างการวนลูปส่วนรวมถึงส่วนที่ว่างเปล่าและการเปลี่ยนแปลงโครงสร้าง

ผสานหลายการนำเสนออย่างปลอดภัย

ตัวอย่าง end‑to‑end ด้านล่างใช้การนำเสนอแรกเป็นปลายทาง, ทำให้ขนาดสไลด์ของแต่ละแหล่งที่เพิ่มเข้ามาเป็นมาตรฐาน, เปิดแต่ละแหล่งเพียงระหว่างการคัดลอก, และบันทึกไฟล์ขั้นสุดท้ายเมื่อทำเสร็จ

import aspose.slides as slides

input_files = ["part1.pptx", "part2.pptx", "part3.pptx"]

with slides.Presentation(input_files[0]) as merged:
    for file_index in range(1, len(input_files)):
        with slides.Presentation(input_files[file_index]) as source:
            if (
                source.slide_size.size.width != merged.slide_size.size.width
                or source.slide_size.size.height != merged.slide_size.size.height
            ):
                source.slide_size.set_size(
                    merged.slide_size.size.width,
                    merged.slide_size.size.height,
                    slides.SlideSizeScaleType.ENSURE_FIT)

            for slide in source.slides:
                merged.slides.add_clone(slide)

    merged.save("merged.pptx", slides.export.SaveFormat.PPTX)

นี่เป็นฐานที่ดีสำหรับการคงการจัดรูปแบบของสไลด์ที่นำเข้า หากผลลัพธ์ต้องใช้ธีมเดียวจากปลายทาง ให้แทนที่การเรียก add_clone(slide) อย่างง่ายด้วยโอเวอร์โหลดมาสเตอร์หรือเลเอาต์ปลายทางที่แสดงไว้ก่อนหน้านี้

ข้อควรพิจารณาเชิงปฏิบัติ

มาสเตอร์, เลเอาต์, และความเที่ยงตรงของการจัดรูปแบบ

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

อย่าถือว่ามาสเตอร์หรือเลเอต์สองตัวที่มีชื่อเดียวกันเป็นภาพที่เหมือนกัน หากเทมเพลตองค์กรต้องควบคุมล appearance สุดท้าย ให้เลือกมาสเตอร์หรือเลเอท์ปลายทางอย่างชัดเจนและตรวจสอบผลลัพธ์หลังการผสาน

โน๊ตและความคิดเห็น

โน๊ตของวิกากรและความคิดเห็นของสไลด์เชื่อมโยงกับเนื้อหาสไลด์และจะถูกคัดลอกเมื่อสไลด์ถูกโคลน Aspose.Slides ยังมี API เฉพาะสำหรับ presentation notes และ presentation comments

หากการจัดรูปแบบของหน้าโน๊ตสำคัญ ให้ตรวจสอบการนำเสนอที่ผสานแล้ว เพราะมาสเตอร์โน๊ตเป็นอ็อบเจกต์ระดับการนำเสนอและอาจแตกต่างกันระหว่างไฟล์แหล่ง สำหรับการตรวจสอบเวิร์กโฟลว์ ให้ตรวจสอบผู้เขียนของความคิดเห็นและเธรดของความคิดเห็นหลังจากรวมไฟล์จากผู้เขียนหรือเทมเพลตที่ต่างกัน

ภาพ, เสียง, วิดีโอ, วัตถุ OLE, และลิงก์ภายนอก

สไลด์อาจอ้างอิงทรัพยากรระดับการนำเสนอเช่นภาพ, เสียงฝัง, วิดีโอฝัง, และข้อมูล OLE ให้โคลนสไลด์ทั้งหมดแทนการคัดลอ shape ที่มองเห็นได้เท่านั้น เพื่อให้ Aspose.Slides สามารถรักษาความสัมพันธ์ของสไลด์ต่อทรัพยากรเหล่านั้นได้

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

Aspose.Slides บันทึกมาสเตอร์ที่โคลนอัตโนมัติไว้ในรีจิสเตอร์ แต่ไม่ควรตีความว่าเป็นการรับประกันทั่วไปว่าทรัพยากรไบนารีที่เหมือนกันจากการนำเสนอแหล่งที่ไม่เกี่ยวข้องกันจะถูกตัดซ้ำเสมอ หากขนาดไฟล์ผลลัพธ์สำคัญ ให้ตรวจสอบแพ็กเกจที่ผสานและวัดผลลัพธ์แทนการพึ่งพาการตัดซ้ำโดยอัตโนมัติ

ฟอนต์ฝังและการพร้อมใช้งานของฟอนต์

ฟอนต์ถูกจัดการระดับการนำเสนอ หากต้องการให้ typography คงที่บนเครื่องต่าง ๆ อย่าเพียงแค่โคลนสไลด์แล้วเชื่อว่าฟอนต์ที่ต้องการจะพร้อมใช้งานในสภาพแวดล้อมปลายทาง คุณสามารถตรวจสอบฟอนต์ที่ฝังด้วย FontsManager.get_embedded_fonts และจัดการการฝังอย่างชัดเจนตามที่อธิบายใน Embed Fonts in Presentations

นอกจากนี้ตรวจสอบว่าคุณมีสิทธิ์ฝังฟอนต์ที่ใช้ในไฟล์แหล่งหรือไม่ เนื่องจากใบอนุญาตฟอนต์อาจจำกัดการฝัง

การนำเสนอที่ป้องกันด้วยรหัสผ่าน

แหล่งที่ป้องกันด้วยรหัสผ่านต้องเปิดสำเร็จก่อนที่สไลด์จะถูกโคลน ให้ส่งรหัสผ่านผ่าน LoadOptions.password

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.password = "YOUR_PASSWORD"

with slides.Presentation("protected.pptx", load_options) as source:
    print(len(source.slides))

การเปิดแหล่งที่เข้ารหัสจะไม่ทำให้การนำเสนอปลายทางถูกป้องกันด้วยรหัสเดียวกันโดยอัตโนมัติ กำหนดการป้องกันผลลัพธ์แยกต่างหากเมื่อจำเป็น

การนำเสนอขนาดใหญ่และการใช้หน่วยความจำ

การนำเสนอขนาดใหญ่ที่มีภาพความละเอียดสูง, เสียง, วิดีโอ หรือวัตถุไบนารีขนาดใหญ่ สามารถใช้หน่วยความจำอย่างมหาศาล LoadOptions.blob_management_options ให้การควบคุมการจัดการ BLOB และการใช้ไฟล์ชั่วคราว ดู Manage Presentation BLOBs สำหรับกลยุทธ์ไฟล์ขนาดใหญ่

สำหรับไฟล์ขนาดใหญ่ ควรโหลดจากเส้นทางไฟล์เมื่อเป็นไปได้ ปิดการนำเสนอแหล่งแต่ละไฟล์ทันทีหลังจากผสานแล้ว และหลีกเลี่ยงการบันทึกผลลัพธ์กลางหลายครั้ง เว้นแต่เวิร์กโฟลว์ต้องการจุดตรวจสอบ การใช้ with slides.Presentation(...) จะรับประกันว่าทรัพยากรการนำเสนอจะถูกปล่อยเมื่อออกจากบริบท

ความปลอดภัยของเธรด

ห้ามโหลด, บันทึก หรือโคลนอินสแตนซ์ของ Presentation พร้อมกันจากหลายเธรด ให้ทำการผสานแต่ละครั้งเป็นแบบ single‑threaded หากต้องการทำงานหลายงานผสานแบบขนาน ให้ใช้กระบวนการแยกแบบ single‑threaded และอินสแตนซ์การนำเสนอแยกต่างหากตามที่อธิบายใน Aspose.Slides multithreading guidance

FAQ

ฉันจะรักษาการออกแบบเดิมของการนำเสนอแต่ละแหล่งไว้ได้อย่างไร?
ใช้ add_clone โดยไม่ระบุมาสเตอร์หรือเลเอ็ตปลายทาง Aspose.Slides สามารถโคลนมาสเตอร์ของแหล่งโดยอัตโนมัติเมื่อสไลด์ที่นำเข้าต้องการมัน

ฉันจะทำให้สไลด์ที่นำเข้าใช้ธีมของปลายทางได้อย่างไร?
ใช้โอเวอร์โหลดที่รับมาสเตอร์ปลายทาง ส่งมาสเตอร์จากการนำเสนอปลายทาง ไม่ใช่จากแหล่ง Aspose.Slides จะพยายามแมปแต่ละสไลด์แหล่งไปยังเลเอ็ตที่เหมาะสมภายใต้มาสเตอร์นั้น

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

สามารถผสานการนำเสนอที่มีขนาดสไลด์ต่างกันได้หรือไม่?
ได้ แต่เนื้อหาสไลด์จะไม่ออกแบบใหม่อัตโนมัติสำหรับมิติปลายทาง ให้ปรับขนาดการนำเสนอแหล่งก่อนโดยใช้ SlideSize.set_size และ SlideSizeScaleType.ENSURE_FIT

ฉันสามารถผสานไฟล์ PPT, PPTX, และ ODP ไปเป็นไฟล์เดียวได้หรือไม่?
ได้ โหลดแต่ละการนำเสนอแหล่ง, โคลนสไลด์ที่ต้องการเข้าสู่ปลายทางเดียว, แล้วบันทึกปลายทางในรูปแบบที่รองรับ อย่างไรก็ตามรูปแบบการนำเสนอบางรูปแบบอาจไม่สนับสนุนคุณลักษณะทั้งหมดเดียวกัน ตรวจสอบเนื้อหาซับซ้อนหลังการผสานข้ามรูปแบบ ดูที่ Supported File Formats

ส่วนของแหล่งจะถูกคงไว้อัตโนมัตหรือไม่?
ไม่ได้โดยลูปพื้นฐานที่โคลนสไลด์เท่านั้น ให้สร้างส่วนที่ต้องการในปลายทางและใช้โอเวอร์โหลดของ add_clone เมื่อโครงสร้างส่วนต้องคงไว้

โน๊ตและความคิดเห็นจะคงอยู่หรือไม่?
พวกมันจะถูกคัดลอกพร้อมสไลด์ที่โคลน สำหรับเวิร์กโฟลว์ที่พึ่งพาการจัดรูปแบบของโน๊ต‑มาสเตอร์, ผู้เขียนของความคิดเห็น, หรือข้อมูลการรีวิวแบบเธรด โปรดตรวจสอบผลลัพธ์ที่ผสานแล้ว เนื่องจากสถานการณ์เหล่านี้เกี่ยวข้องกับโครงสร้างระดับการนำเสนอเช่นกันกับระดับสไลด์

เสียง, วิดีโอ, วัตถุ OLE, และไฮเปอร์ลิงก์จะเกิดอะไรขึ้น?
เนื้อหาที่ฝังจะถูกพกพาเป็นส่วนหนึ่งของความสัมพันธ์ทรัพยากรของสไลด์ที่โคลน ลิงก์ภายนอกจะยังคงเป็นลิงก์ภายนอก ดังนั้นไฟล์หรือ URL ปลายทางต้องยังคงพร้อมใช้งานหลังการผสาน

ฟอนต์ที่ฝังจากทุกแหล่งจะมีในการนำเสนอที่ผสานแล้วหรือไม่?
อย่าพึ่งพาการโคลนสไลด์อย่างเดียวเพื่อการจัดจำหน่ายฟอนต์ ตรวจสอบฟอนต์ที่ฝังในปลายทางและจัดการการฝังฟอนต์หรือความพร้อมใช้งานของฟอนต์ภายนอกอย่างชัดเจนเมื่อ typography มีความสำคัญ

ฉันจะผสานไฟล์ที่ป้องกันด้วยรหัสผ่านอย่างไร?
เปิดไฟล์ด้วย LoadOptions.password ที่ถูกต้อง แล้วโคลนสไลด์ตามปกติ การป้องกันผลลัพธ์ต้องกำหนดแยกต่างหาก

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

ฉันสามารถผสานสไลด์จากหลายเธรดได้หรือไม่?
ห้ามโหลด, บันทึก, หรือโคลนอินสแตนซ์ของ Presentation จากหลายเธรดพร้อมกัน ให้ทำการผสานแต่ละครั้งเป็นแบบ single‑threaded หากต้องการทำงานหลายงานผสานแบบขนาน ให้ใช้กระบวนการแยกแบบ single‑threaded และอินสแตนซ์การนำเสนอแยกต่างหาก.