การดำเนินการนำเสนอแบบ Low-Code ใน JavaScript

ภาพรวม

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

ตัวช่วยแบบ low‑code มีประโยชน์ที่สุดเมื่อการดำเนินการครอบคลุมไฟล์หรือการนำเสนอทั้งหมดและกระบวนการทำงานค่าเริ่มต้นตรงกับความต้องการของคุณ ใช้ Aspose.Slides object model อย่างเต็มรูปแบบเมื่อคุณต้องการควบคุมระดับละเอียดบนสไลด์แต่ละสไลด์ มาสเตอร์ ใช้รูปแบบ รูปร่าง การตั้งค่าการส่งออก หรือความสัมพันธ์ระหว่างองค์ประกอบของการนำเสนอ

ตารางต่อไปสรุปตัวช่วยที่มีอยู่:

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

แปลงการนำเสนอ

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

aspose.slides.Convert.autoByExtension("input.pptx", "output.pdf");

คลาส แปลง ยังมีเมธอดเฉพาะสำหรับการส่งออกเป็น PDF, SVG, JPEG, PNG และ TIFF อีกด้วย ใช้โมเดลวัตถุเต็มรูปแบบเมื่อคุณต้องการตรวจสอบหรือแก้ไขการนำเสนอก่อนการส่งออก หรือกำหนดตัวเลือกการส่งออกที่ตัวช่วยไม่ได้เปิดเผย ดู Convert Presentation สำหรับขั้นตอนและตัวเลือกเฉพาะรูปแบบ

ผสานการนำเสนอ

ใช้ Merger.process เพื่อรวมไฟล์การนำเสนอเต็มรูปแบบด้วยการเรียกครั้งเดียว การนำเสนอที่นำเข้าต้องมีรูปแบบไฟล์เดียวกัน

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const inputFiles = ["first.pptx", "second.pptx"];
aspose.slides.Merger.process(inputFiles, "merged.pptx");

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

วนรอบผ่านองค์ประกอบการนำเสนอ

คลาส ForEach จะเรียกคอลแบ็กสำหรับแต่ละประเภทขององค์ประกอบการนำเสนอที่ระบุ มันช่วยลดการวนลูปเก็บรวบรวมแบบซ้อนกันและสะดวกสำหรับการตรวจสอบหรือการเปลี่ยนแปลงรูปแบบทั่วการนำเสนอ ใน Node.js ให้สร้างการนำเข้าของอินเทอร์เฟซคอลแบ็กด้วย java.newProxy

ตัวอย่างต่อไปนี้ใช้ ForEach.slide, ForEach.shape, ForEach.paragraph และ ForEach.portion เพื่อตรวจสอบองค์ประกอบที่สอดคล้องกัน:

const java = require("java");
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const presentation = new aspose.slides.Presentation("input.pptx");
try {
    const slideCallback = java.newProxy("com.aspose.slides.ForEach$ForEachSlideCallback", {
        invoke: function (slide, index) {
            console.log(`Slide ${index}: ${slide.getShapes().size()} shapes`);
        }
    });
    aspose.slides.ForEach.slide(presentation, slideCallback);

    const shapeCallback = java.newProxy("com.aspose.slides.ForEach$ForEachShapeCallback", {
        invoke: function (shape, slide, index) {
            console.log(`Shape ${index} on ${slide.getClass().getSimpleName()}: ${shape.getName()}`);
        }
    });
    aspose.slides.ForEach.shape(presentation, shapeCallback);

    const paragraphCallback = java.newProxy("com.aspose.slides.ForEach$ForEachParagraphCallback", {
        invoke: function (paragraph, slide, index) {
            console.log(`Paragraph ${index} on ${slide.getClass().getSimpleName()}: ${paragraph.getText()}`);
        }
    });
    aspose.slides.ForEach.paragraph(presentation, paragraphCallback);

    const portionCallback = java.newProxy("com.aspose.slides.ForEach$ForEachPortionCallback", {
        invoke: function (portion, paragraph, slide, index) {
            console.log(`Portion ${index} on ${slide.getClass().getSimpleName()}: ${portion.getText()}`);
        }
    });
    aspose.slides.ForEach.portion(presentation, portionCallback);
} finally {
    presentation.dispose();
}

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

รวบรวมรูปร่าง

ใช้ Collect.shapes เมื่อคุณต้องการชุดของรูปร่างทั้งหมดในการนำเสนอแทนการใช้คอลแบ็กสำหรับแต่ละรูปร่าง นี่มีประโยชน์เมื่อชุดเดียวกันต้องถูกกรอง นับ หรือประมวลผลหลายครั้ง

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const presentation = new aspose.slides.Presentation("input.pptx");
try {
    const shapes = aspose.slides.Collect.shapes(presentation);
    const iterator = shapes.iterator();

    while (iterator.hasNext()) {
        const shape = iterator.next();
        console.log(`${shape.getName()}: ${shape.getClass().getSimpleName()}`);
    }
} finally {
    presentation.dispose();
}

หากต้องการจัดการแต่ละรูปร่างทันทีและไม่ต้องการเก็บผลลัพธ์ที่รวบรวมไว้ ให้ใช้ ForEach.shape แทน

บีบอัดเนื้อหาการนำเสนอ

คลาส บีบอัด สามารถลบองค์ประกอบโครงสร้างที่ไม่ได้ใช้และลดข้อมูลฟอนท์ที่ฝังอยู่ได้:

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const presentation = new aspose.slides.Presentation("input.pptx");
try {
    aspose.slides.Compress.removeUnusedLayoutSlides(presentation);
    aspose.slides.Compress.removeUnusedMasterSlides(presentation);
    aspose.slides.Compress.compressEmbeddedFonts(presentation);

    presentation.save("compressed.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

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

FAQ

ควรใช้ API แบบ low‑code แทนโมเดลวัตถุเต็มรูปแบบเมื่อไร?

ใช้ตัวช่วยแบบ low‑code เมื่อการดำเนินการมาตรฐานใช้กับไฟล์หรือการนำเสนอทั้งหมดและไม่ต้องการควบคุมรายละเอียดบนองค์ประกอบแต่ละอัน ใช้โมเดลวัตถุเต็มรูปแบบเมื่อคุณต้องการเลือกสไลด์เฉพาะ ควบคุมความสัมพันธ์ระหว่างมาสเตอร์และการจัดวาง ตรวจสอบสถานะกลาง หรือกำหนดพฤติกรรมที่ตัวช่วยไม่ได้เปิดเผย

Merger สามารถผสานการนำเสนอในรูปแบบไฟล์ที่แตกต่างกันได้หรือไม่?

ไม่ได้ ตัวช่วย Merger.process ต้องการการนำเข้าที่มีรูปแบบเดียวกันก่อน ให้แปลงไฟล์อินพุตเป็นรูปแบบร่วมกันก่อน เช่นใช้ Convert.autoByExtension แล้วจึงผสานไฟล์ที่แปลงแล้ว

ForEach ประมวลผลสไลด์มาสเตอร์ การจัดวางและบันทึกหรือไม่?

ForEach.slide วนผ่านสไลด์การนำเสนอแบบปกติ การทำงานทั่วการนำเสนอของ ForEach.shape, ForEach.paragraph และ ForEach.portion จะรวมสไลด์ปกติ มาสเตอร์และการจัดวางเป็นค่าเริ่มต้น ใช้โอเวอร์โหลดโดยตั้งค่า includeNotes เป็น true เพื่อรวมสไลด์บันทึกด้วย

ความแตกต่างระหว่าง ForEach.shape และ Collect.shapes คืออะไร?

ใช้ ForEach.shape เพื่อประมวลผลแต่ละรูปร่างทันทีผ่านคอลแบ็ก ใช้ Collect.shapes เมื่อคุณต้องการผลลัพธ์ที่สามารถเก็บไว้ กรอง นับ หรือเดินทางหลายครั้งได้

Compress ทำให้ไฟล์การนำเสนอเล็กลงเสมอหรือไม่?

ไม่เสมอ ผลลัพธ์ขึ้นอยู่กับว่าการนำเสนอมีการจัดวางที่ไม่ได้ใช้ มาสเตอร์ที่ไม่ได้ใช้ หรือฟอนท์ที่ฝังอยู่โดยมีอักขระที่ไม่ได้ใช้หรือไม่ หากไม่มีสิ่งเหล่านั้น การดำเนินการ Compress ที่เกี่ยวข้องอาจไม่ลดขนาดไฟล์

การเปลี่ยนแปลงที่ทำโดย ForEach หรือ Compress จะถูกบันทึกอัตโนมัติหรือไม่?

ไม่ ตัวช่วยเหล่านี้ทำงานบนอ็อบเจกต์ Presentation ที่โหลดอยู่ในหน่วยความจำ หลังจากแก้ไของค์ประกอบในคอลแบ็กของ ForEach หรือรัน Compress ให้เรียก Presentation.save เพื่อบันทึกผลลัพธ์

บทความที่เกี่ยวข้อง