JavaScript में प्रस्तुति स्लाइड मास्टर प्रबंधित करें

अवलोकन

एक स्लाइड मास्टर स्लाइड समूह के लिए साझा डिज़ाइन सेटिंग्स को परिभाषित करता है। इसमें सामान्य आकृतियों, लोगो, पृष्ठभूमि, टेक्स्ट शैलियों, थीम सेटिंग्स और फ़ूटर सेटिंग्स हो सकती हैं। PowerPoint में, स्लाइड मास्टर को संपादित करना वह सामान्य तरीका है जिससे प्रस्तुति को लगातार बनाए रखा जा सके बिना प्रत्येक स्लाइड पर समान फ़ॉर्मेटिंग दोहराए।

Aspose.Slides for Node.js via Java भी समान मॉडल को सपोर्ट करता है। एक प्रस्तुति में एक या अधिक मास्टर स्लाइड हो सकती हैं, और प्रत्येक मास्टर स्लाइड में कई लेआउट स्लाइड हो सकती हैं। सामान्य स्लाइडें आमतौर पर सीधे किसी मास्टर स्लाइड को संदर्भित नहीं करतीं। बल्कि, एक सामान्य स्लाइड एक लेआउट स्लाइड का उपयोग करती है, और वह लेआउट स्लाइड एक मास्टर स्लाइड से जुड़ी होती है।

क्रमक्रम इस प्रकार है:

  1. स्लाइड मास्टर - साझा डिज़ाइन और थीम को परिभाषित करता है।
  2. लेआउट स्लाइड - प्लेसहोल्डर और लेआउट-स्तर फ़ॉर्मेटिंग की विशिष्ट व्यवस्था को परिभाषित करता है।
  3. सामान्य स्लाइड - वास्तविक प्रस्तुति सामग्री रखती है और एक लेआउट स्लाइड का उपयोग करती है।

The hierarchy of master slides, layout slides, and normal slides

Aspose.Slides में, स्लाइड मास्टर को MasterSlide क्लास द्वारा दर्शाया जाता है। प्रस्तुति की सभी मास्टर स्लाइडें Presentation.getMasters() संग्रह के माध्यम से उपलब्ध हैं।

स्लाइड मास्टर तक पहुंचें

PowerPoint में, आप View > Slide Master द्वारा स्लाइड मास्टर दृश्य खोल सकते हैं।

The Slide Master command on the PowerPoint View tab

Aspose.Slides में, मास्टर स्लाइड तक पहुँचने के लिए getMasters() संग्रह का उपयोग करें:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let firstMasterSlide = presentation.getMasters().get_Item(0);
    let masterSlideCount = presentation.getMasters().size();
    let firstMasterLayoutSlideCount = firstMasterSlide.getLayoutSlides().size();

    console.log("Master slides: " + masterSlideCount);
    console.log("Layouts in the first master: " + firstMasterLayoutSlideCount);
} finally {
    presentation.dispose();
}

आप सामान्य स्लाइड के लेआउट के माध्यम से उपयोग की गई मास्टर स्लाइड भी प्राप्त कर सकते हैं:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let slide = presentation.getSlides().get_Item(0);
    let layoutSlide = slide.getLayoutSlide();
    let masterSlide = layoutSlide.getMasterSlide();
    let masterSlideName = masterSlide.getName();

    console.log(masterSlideName);
} finally {
    presentation.dispose();
}

स्लाइड मास्टर में क्या होता है

एक मास्टर स्लाइड स्लाइड जैसी वस्तु है। यह BaseSlide से सामान्य स्लाइड व्यवहार को विरासत में लेती है, इसलिए यह सामान्य एवं लेआउट स्लाइडों द्वारा उपयोग किए जाने वाले कई समान स्लाइड प्रॉपर्टीज़ को उजागर करती है। मास्टर‑विशेष सदस्य MasterSlide API पृष्ठ पर सूचीबद्ध हैं।

आम तौर पर उपयोग किए जाने वाले मास्टर स्लाइड सदस्यों में शामिल हैं:

सदस्य उद्देश्य
getBackground() मास्टर‑स्तर स्लाइड पृष्ठभूमि सेट करता है।
getShapes() मास्टर पर रखी गई आकृतियों को संग्रहीत करता है, जैसे लोगो, चित्र फ्रेम, और साझा टेक्स्ट।
getLayoutSlides() उन लेआउट स्लाइडों को संग्रहीत करता है जो मास्टर से संबंधित हैं।
getThemeManager() मास्टर थीम API तक पहुँच प्रदान करता है।
getHeaderFooterManager() मास्टर और उसकी चाइल्ड लेआउट्स के लिए हेडर, फुटर, तिथि, और स्लाइड नंबर को नियंत्रित करता है।
getDependingSlides() उन सामान्य स्लाइडों को लौटाता है जो लेआउट के माध्यम से मास्टर पर निर्भर करती हैं।

स्लाइड मास्टर में एक छवि जोड़ें

जब आप मास्टर स्लाइड में एक छवि जोड़ते हैं, तो वह उन स्लाइडों पर दिखाई देती है जो उस मास्टर की लेआउट्स का उपयोग करती हैं। यह लोगो, वाटरमार्क, सजावटी बैंड और अन्य दोहराए जाने वाले दृश्य तत्वों के लिए उपयोगी है।

निम्न उदाहरण पहले मास्टर स्लाइड में एक लोगो जोड़ता है:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let masterSlide = presentation.getMasters().get_Item(0);
    let logo = aspose.slides.Images.fromFile("logo.png");

    try {
        let logoImage = presentation.getImages().addImage(logo);

        masterSlide.getShapes().addPictureFrame(
            aspose.slides.ShapeType.Rectangle,
            20,
            20,
            80,
            80,
            logoImage);
    } finally {
        logo.dispose();
    }

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

चित्र फ्रेम के बारे में अधिक जानकारी के लिए देखें Picture Frame

प्लेसहोल्डर के साथ काम करें

प्लेसहोल्डर सामान्यतः लेआउट स्लाइडों पर परिभाषित होते हैं। मास्टर स्लाइड वह साझा शैली और थीम प्रदान करता है जिसे लेआउट्स विरासत में लेते हैं, जबकि प्रत्येक लेआउट यह तय करता है कि कौन से प्लेसहोल्डर उपलब्ध हैं और वे कहाँ रखे गए हैं।

PowerPoint में, प्लेसहोल्डर कमांड स्लाइड मास्टर दृश्य में उपलब्ध हैं।

The Insert Placeholder command in PowerPoint Slide Master view

Aspose.Slides के साथ नए प्लेसहोल्डर जोड़ने के लिए, उस लेआउट स्लाइड के साथ काम करें जो मास्टर से जुड़ा है:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let masterSlide = presentation.getMasters().get_Item(0);
    let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
    let blankLayoutSlide = masterSlide.getLayoutSlides().getByType(blankLayoutType);

    if (blankLayoutSlide === null) {
        blankLayoutSlide = masterSlide.getLayoutSlides().add(blankLayoutType, "Blank");
    }

    blankLayoutSlide.getPlaceholderManager().addTextPlaceholder(60, 120, 600, 80);

    presentation.getSlides().addEmptySlide(blankLayoutSlide);
    presentation.save("presentation-with-placeholder.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

आप मास्टर स्लाइड पर पहले से मौजूद प्लेसहोल्डर आकृतियों को भी फ़ॉर्मेट कर सकते हैं। निम्न उदाहरण शीर्षक प्लेसहोल्डर को खोजता है और एक रैखिक ग्रेडिएंट फ़िल लागू करता है:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let masterSlide = presentation.getMasters().get_Item(0);
    let titlePlaceholder = null;
    let masterShapes = masterSlide.getShapes();
    let masterShapeCount = masterShapes.size();

    for (let masterShapeIndex = 0; masterShapeIndex < masterShapeCount; masterShapeIndex++) {
        let shape = masterShapes.get_Item(masterShapeIndex);

        if (java.instanceOf(shape, "com.aspose.slides.AutoShape")) {
            let placeholder = shape.getPlaceholder();

            if (placeholder !== null && placeholder.getType() === aspose.slides.PlaceholderType.Title) {
                titlePlaceholder = shape;
                break;
            }
        }
    }

    if (titlePlaceholder !== null) {
        let gradientFillType = java.newByte(aspose.slides.FillType.Gradient);
        let linearGradientShape = java.newByte(aspose.slides.GradientShape.Linear);
        let redGradientColor = java.newInstanceSync("java.awt.Color", 255, 0, 0);
        let purpleGradientColor = java.newInstanceSync("java.awt.Color", 128, 0, 128);

        titlePlaceholder.getFillFormat().setFillType(gradientFillType);
        titlePlaceholder.getFillFormat().getGradientFormat().setGradientShape(linearGradientShape);
        titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(0.0, redGradientColor);
        titlePlaceholder.getFillFormat().getGradientFormat().getGradientStops().add(255.0, purpleGradientColor);
    }

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

Formatted title placeholder inherited by normal slides

प्लेसहोल्डर और टेक्स्ट फ़ॉर्मेटिंग विकल्पों के लिए देखें Set Prompt Text in Placeholder और Text Formatting

स्लाइड मास्टर पृष्ठभूमि बदलें

मास्टर पृष्ठभूमि लेआउट्स और उन स्लाइडों द्वारा विरासत में ली जाती है जो इसे ओवरराइड नहीं करतीं। निम्न उदाहरण पहले मास्टर स्लाइड के लिए एक ठोस पृष्ठभूमि रंग सेट करता है:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let masterSlide = presentation.getMasters().get_Item(0);
    let ownBackgroundType = java.newByte(aspose.slides.BackgroundType.OwnBackground);
    let solidFillType = java.newByte(aspose.slides.FillType.Solid);
    let masterBackgroundColor = java.getStaticFieldValue("java.awt.Color", "GREEN");

    masterSlide.getBackground().setType(ownBackgroundType);
    masterSlide.getBackground().getFillFormat().setFillType(solidFillType);
    masterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(masterBackgroundColor);

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

संबंधित विषयों के लिए देखें Presentation Background और Presentation Theme

एक स्लाइड मास्टर को दूसरी प्रस्तुति में क्लोन करें

MasterSlideCollection.addClone का उपयोग करके एक मास्टर स्लाइड को दूसरी प्रस्तुति में कॉपी किया जा सकता है। कॉपी किया गया मास्टर फिर गंतव्य प्रस्तुति में लेआउट्स और स्लाइड्स द्वारा उपयोग किया जा सकता है।

let sourcePresentation = new aspose.slides.Presentation("source.pptx");
let destinationPresentation = new aspose.slides.Presentation("destination.pptx");
try {
    let sourceMasterSlide = sourcePresentation.getMasters().get_Item(0);
    let clonedMasterSlide = destinationPresentation.getMasters().addClone(sourceMasterSlide);

    destinationPresentation.save("destination-with-master.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    sourcePresentation.dispose();
    destinationPresentation.dispose();
}

यदि आपको सामान्य स्लाइडों को उनके मास्टर के साथ क्लोन करने की आवश्यकता है, तो देखें Clone Slides

एकाधिक स्लाइड मास्टर जोड़ें

एक प्रस्तुति में कई मास्टर स्लाइडें हो सकती हैं। यह तब उपयोगी होता है जब विभिन्न अनुभागों को अलग‑अलग ब्रांडिंग, पेज संरचना, या थीम सेटिंग्स की आवश्यकता होती है।

PowerPoint commands for inserting and managing master slides

निम्न उदाहरण डिफ़ॉल्ट मास्टर को क्लोन करता है, क्लोन को एक अलग पृष्ठभूमि देता है, उस क्लोन किए गए मास्टर के नीचे एक लेआउट बनाता है, और उस लेआउट पर आधारित एक नई स्लाइड जोड़ता है:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let defaultMasterSlide = presentation.getMasters().get_Item(0);
    let sectionMasterSlide = presentation.getMasters().addClone(defaultMasterSlide);
    let ownBackgroundType = java.newByte(aspose.slides.BackgroundType.OwnBackground);
    let solidFillType = java.newByte(aspose.slides.FillType.Solid);
    let sectionMasterBackgroundColor = java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY");

    sectionMasterSlide.getBackground().setType(ownBackgroundType);
    sectionMasterSlide.getBackground().getFillFormat().setFillType(solidFillType);
    sectionMasterSlide.getBackground().getFillFormat().getSolidFillColor().setColor(sectionMasterBackgroundColor);

    let blankLayoutType = java.newByte(aspose.slides.SlideLayoutType.Blank);
    let sourceBlankLayout = defaultMasterSlide.getLayoutSlides().getByType(blankLayoutType);
    if (sourceBlankLayout === null) {
        sourceBlankLayout = defaultMasterSlide.getLayoutSlides().get_Item(0);
    }

    let sectionBlankLayout = sectionMasterSlide.getLayoutSlides().addClone(sourceBlankLayout);

    presentation.getSlides().addEmptySlide(sectionBlankLayout);
    presentation.save("presentation-with-multiple-masters.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

स्लाइड मास्टर की तुलना करें

मास्टर स्लाइडों की तुलना equals मेथड से की जा सकती है जो BaseSlide से विरासत में मिली है। तुलना संरचना और स्थिर सामग्री जाँचती है, जैसे आकृतियाँ, टेक्स्ट, फ़ॉर्मेटिंग, एनीमेशन, और अन्य स्लाइड सेटिंग्स। यह स्लाइड आईडी जैसी विशिष्ट पहचानकर्ताओं या वर्तमान तिथि जैसे गतिशील प्लेसहोल्डर मानों की तुलना नहीं करती।

let firstPresentation = new aspose.slides.Presentation("first.pptx");
let secondPresentation = new aspose.slides.Presentation("second.pptx");
try {
    let firstPresentationMasterCount = firstPresentation.getMasters().size();
    let secondPresentationMasterCount = secondPresentation.getMasters().size();

    for (let firstMasterIndex = 0; firstMasterIndex < firstPresentationMasterCount; firstMasterIndex++) {
        for (let secondMasterIndex = 0; secondMasterIndex < secondPresentationMasterCount; secondMasterIndex++) {
            let firstMasterSlide = firstPresentation.getMasters().get_Item(firstMasterIndex);
            let secondMasterSlide = secondPresentation.getMasters().get_Item(secondMasterIndex);
            let areMasterSlidesEqual = firstMasterSlide.equals(secondMasterSlide);

            if (areMasterSlidesEqual) {
                console.log(
                    "first.pptx master #" + firstMasterIndex +
                    " equals second.pptx master #" + secondMasterIndex);
            }
        }
    }
} finally {
    firstPresentation.dispose();
    secondPresentation.dispose();
}

अधिक जानकारी के लिए देखें Compare Presentation Slides

डिफ़ॉल्ट दृश्य के रूप में स्लाइड मास्टर दृश्य सेट करें

[ViewProperties](https://reference.aspose.com/slides/hi/nodejs-java/aspose.slides/viewproperties/) पर setLastView मेथड का उपयोग करके PowerPoint द्वारा पहले खुले जाने वाले दृश्य को नियंत्रित किया जा सकता है। निम्न उदाहरण प्रस्तुति को स्लाइड मास्टर दृश्य में खोलता है:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let slideMasterViewType = java.newByte(aspose.slides.ViewType.SlideMasterView);

    presentation.getViewProperties().setLastView(slideMasterViewType);
    presentation.save("presentation-master-view.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

अधिक दृश्य सेटिंग्स के लिए देखें Save Presentation

अप्रयुक्त मास्टर स्लाइड्स हटाएँ

कभी‑कभी प्रस्तुतियों में ऐसी मास्टर स्लाइड्स हो जाती हैं जो अब किसी सामान्य स्लाइड द्वारा उपयोग नहीं की जातीं। अप्रयुक्त मास्टर को हटाने से फ़ाइल आकार कम हो सकता है और टेम्प्लेट रखरखाव सरल हो जाता है।

removeUnused का उपयोग करके getMasters() संग्रह से अप्रयुक्त मास्टर को हटाएँ:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    presentation.getMasters().removeUnused(true);
    presentation.save("presentation-clean.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

आप लो‑कोड Compress.removeUnusedMasterSlides मेथड का भी उपयोग कर सकते हैं:

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    aspose.slides.Compress.removeUnusedMasterSlides(presentation);
    presentation.save("presentation-clean.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

FAQ

स्लाइड मास्टर और लेआउट स्लाइड में क्या अंतर है?

स्लाइड मास्टर थीम, पृष्ठभूमि, सामान्य आकृतियाँ, और टेक्स्ट शैलियों जैसी साझा डिज़ाइन सेटिंग्स को परिभाषित करता है। लेआउट स्लाइड एक मास्टर स्लाइड से जुड़ी होती है और प्लेसहोल्डर की विशिष्ट व्यवस्था को परिभाषित करती है। सामान्य स्लाइड एक लेआउट स्लाइड का उपयोग करती है, इसलिए वह लेआउट और मास्टर दोनों से विरासत में मिलती है।

क्या एक प्रस्तुति में कई स्लाइड मास्टर हो सकते हैं?

हां। एक प्रस्तुति में कई स्लाइड मास्टर हो सकते हैं। जब विभिन्न अनुभागों को अलग‑अलग दृश्य प्रणाली या ब्रांडिंग की आवश्यकता हो, तो कई मास्टर का उपयोग करें।

मास्टर स्लाइड में या लेआउट स्लाइड में प्लेसहोल्डर जोड़ना चाहिए?

अधिकांश मामलों में प्लेसहोल्डर लेआउट स्लाइड में जोड़ें। साझा दृश्य तत्व और साझा फ़ॉर्मेटिंग मास्टर स्लाइड पर रखें, फिर सामग्री प्लेसहोल्डर लेआउट्स पर रखें जिन्हें सामान्य स्लाइडें उपयोग करेंगी।

क्या मैं एक उपयोग में चल रही मास्टर स्लाइड को हटाने सकते हूं?

नहीं। जिस मास्टर स्लाइड पर निर्भर स्लाइडें हैं, उसे सीधे सुरक्षित रूप से हटाया नहीं जा सकता। पहले उन स्लाइडों को किसी अन्य मास्टर के तहत लेआउट्स में स्थानांतरित करें, या केवल अनउपयोगी मास्टर को हटाने वाली सफ़ाई विधि का उपयोग करें।