परिचय

Aspose.Slides FOSS for Java एक मुफ्त, ओपन‑सोर्स लाइब्रेरी है जो जावा डेवलपर्स को माइक्रोसॉफ्ट ऑफिस पर किसी भी निर्भरता के बिना पावरपॉइंट प्रेजेंटेशन बनाने और संशोधित करने देती है। लाइब्रेरी org.aspose.slides.foss पैकेज के तहत आती है और जावा 21 और उससे ऊपर को लक्षित करती है।

प्रोजेक्ट MIT लाइसेंस के तहत जारी किया गया है, इसलिए आप इसे व्यक्तिगत और व्यावसायिक दोनों प्रोजेक्ट्स में बिना किसी लागत के और बिना API key के उपयोग कर सकते हैं। यह slides, shapes, text, tables, images, comments, और document properties के लिए एक समृद्ध ऑब्जेक्ट मॉडल प्रदान करता है, जो Office Open XML पैकेज फ़ॉर्मेट की प्रत्यक्ष हेरफेर द्वारा समर्थित है।

273 क्लासेस, 2,600 से अधिक मेथड्स, और 42 एनेमरेशन्स के साथ, कोर API उन बिल्डिंग ब्लॉक्स को कवर करता है जिनकी आपको किसी भी जावा एप्लिकेशन में प्रेजेंटेशन वर्कफ़्लो को ऑटोमेट करने के लिए आवश्यकता है।


क्या शामिल है

प्रस्तुति जीवनचक्र

Presentation क्लास हर ऑपरेशन के लिए प्रवेश बिंदु है। आप एक खाली प्रस्तुति बना सकते हैं और परिणाम को डिस्क पर या एक OutputStream में विभिन्न स्वरूपों में सहेज सकते हैं। क्लास AutoCloseable को लागू करती है, इसलिए यह try-with-resources ब्लॉक्स के साथ स्वाभाविक रूप से काम करती है।

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation pres = new Presentation()) {
    // A new presentation starts with one blank slide
    System.out.println("Slides: " + pres.getSlides().size());
    pres.save("output.pptx", SaveFormat.PPTX);
}

स्लाइड प्रबंधन

SlideCollection स्लाइड डेक पर पूर्ण नियंत्रण प्रदान करता है। आप addEmptySlide() के साथ खाली स्लाइड जोड़ सकते हैं, addClone() के साथ मौजूदा स्लाइड को डुप्लिकेट कर सकते हैं, insertEmptySlide() के साथ विशिष्ट इंडेक्स पर स्लाइड डाल सकते हैं, संदर्भ या इंडेक्स द्वारा स्लाइड हटाए जा सकते हैं, और संग्रह पर इटररेट कर सकते हैं।

try (Presentation pres = new Presentation()) {
    ILayoutSlide layout = pres.getLayoutSlides().get(0);
    pres.getSlides().addEmptySlide(layout);
    pres.getSlides().addClone(pres.getSlides().get(0));
    System.out.println("Total slides: " + pres.getSlides().size());
}

आकार और ऑटोशेप्स

AutoShape क्लास स्लाइड पर सबसे सामान्य ड्रॉएबल ऑब्जेक्ट का प्रतिनिधित्व करती है। आप IShapeCollection.addAutoShape() के माध्यम से शैप बनाते हैं, एक ShapeType स्थिरांक (जैसे ShapeType.RECTANGLE) और स्थिति निर्देशांक निर्दिष्ट करके। प्रत्येक AutoShape टेक्स्ट सामग्री के लिए एक TextFrame और दृश्य शैली के लिए एक FillFormat प्रदान करता है।

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 300, 100, false);
    ITextFrame tf = shape.addTextFrame("Hello from Aspose.Slides FOSS");
    System.out.println(tf.getText());
}

पाठ और पैराग्राफ

रिच टेक्स्ट को TextFrame, ParagraphCollection, Paragraph, PortionCollection, और Portion ऑब्जेक्ट्स की पदानुक्रम के रूप में मॉडल किया गया है। आप TextFrame.setText() के साथ सीधे फ्रेम पर साधारण टेक्स्ट सेट कर सकते हैं, या अलग‑अलग फ़ॉर्मेटिंग वाले व्यक्तिगत Portion इंस्टेंसेज़ जोड़कर मल्टी‑रन पैराग्राफ बना सकते हैं।

try (Presentation pres = new Presentation()) {
    ISlide slide = pres.getSlides().get(0);
    IAutoShape shape = slide.getShapes()
        .addAutoShape(ShapeType.RECTANGLE, 50, 50, 400, 100, false);
    ITextFrame tf = shape.addTextFrame("First run ");
    Portion extra = new Portion("second run");
    tf.getParagraphs().get(0).getPortions().add(extra);
    System.out.println(tf.getText());
}

दस्तावेज़ गुण

DocumentProperties क्लास मानक मेटाडेटा फ़ील्ड जैसे शीर्षक, लेखक, विषय, कीवर्ड, श्रेणी, और टाइमस्टैम्प को उजागर करती है। प्रॉपर्टीज़ PPTX कोर और विस्तारित प्रॉपर्टीज़ भागों में संग्रहीत रहती हैं और राउंड‑ट्रिप सेव/रीलोड चक्रों में बनी रहती हैं।

try (Presentation pres = new Presentation()) {
    IDocumentProperties props = pres.getDocumentProperties();
    props.setTitle("Quarterly Report");
    props.setAuthor("Engineering Team");
    pres.save("report.pptx", SaveFormat.PPTX);
}

टिप्पणियाँ और एनोटेशन

टिप्पणी उपप्रणाली में CommentAuthorCollection और CommentCollection शामिल हैं। आप लेखकों को जोड़ सकते हैं, विशिष्ट स्लाइड और स्थितियों पर टिप्पणियाँ संलग्न कर सकते हैं, और मौजूदा एनोटेशन को वापस पढ़ सकते हैं। टिप्पणी डेटा PPTX पैकेज के ppt/commentAuthors.xml और ppt/comments/*.xml भागों में संग्रहीत होता है।


त्वरित प्रारंभ

अपने pom.xml में Maven निर्भरता जोड़ें:

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

फिर एक प्रस्तुति बनाएं और सहेजें:

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;

public class QuickStart {
    public static void main(String[] args) {
        try (Presentation pres = new Presentation()) {
            ISlide slide = pres.getSlides().get(0);

            // Add a title shape
            IAutoShape title = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 30, 600, 60, false);
            title.addTextFrame("Aspose.Slides FOSS for Java");

            // Add a content shape
            IAutoShape body = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 120, 600, 300, false);
            body.addTextFrame(
                "This presentation was created entirely in Java "
                + "using a free, open-source library.");

            pres.save("quick-start.pptx", SaveFormat.PPTX);
        }
    }
}

समर्थित फ़ॉर्मेट

SaveFormat enumeration लाइब्रेरी द्वारा लिखे जा सकने वाले प्रत्येक आउटपुट फ़ॉर्मेट को परिभाषित करता है। नीचे दी गई तालिका में पुष्टि किए गए प्रविष्टियों की सूची है।

फ़ॉर्मेटएक्सटेंशनलिखें
PPTX.pptxहाँ
PPTM.pptmहाँ
PPSX.ppsxहाँ
PPSM.ppsmहाँ
POTX.potxहाँ
POTM.potmहाँ
ODP.odpहाँ
OTP.otpहाँ
FODP.fodpहाँ
PPT.pptहाँ
PPS.ppsहाँ
POT.potहाँ
PDF.pdfहाँ
XPS.xpsहाँ
HTML.htmlहाँ
HTML5.htmlहाँ
SVG.svgहाँ
TIFF.tiffहाँ
PNG.pngहाँ
JPEG.jpegहाँ
BMP.bmpहाँ
GIF.gifहाँ
MD.mdहाँ

ऊपर सूचीबद्ध फ़ॉर्मेट्स पुष्टि किए गए निर्यात लक्ष्य हैं जो SaveFormat enum में परिभाषित हैं।


ओपन सोर्स और लाइसेंसिंग

Aspose.Slides FOSS for Java MIT लाइसेंस के तहत वितरित किया गया है। पूर्ण स्रोत कोड GitHub पर उपलब्ध है Aspose.Slides-FOSS-for-Java। आप लाइब्रेरी को किसी भी प्रोजेक्ट में बिना रॉयल्टी या लाइसेंस कुंजियों के उपयोग, संशोधित और पुनर्वितरित करने के लिए स्वतंत्र हैं।


शुरू करना

गहराई में उतरने के लिए तैयार हैं? यहाँ कुछ संसाधन हैं जो आपको शुरू करने में मदद करेंगे:

  • Developer Guide – हर फीचर क्षेत्र के लिए walkthroughs और tutorials
  • Knowledge Base – how-to लेख और अक्सर पूछे जाने वाले प्रश्न
  • API Reference – पूर्ण class और method दस्तावेज़ीकरण