Java में प्रस्तुतियों को सहेजने का तरीका
Aspose.Slides FOSS for Java saves presentations exclusively to .pptx फ़ॉर्मेट का उपयोग करके prs.save(path, SaveFormat.PPTX). यह गाइड सही सहेजने के पैटर्न, अलग पथ पर सहेजना, और सामान्य सहेजने से संबंधित त्रुटियों को कवर करता है।.
स्टेप बाय स्टेप गाइड
चरण 1: Maven निर्भरता जोड़ें
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>चरण 2: प्रस्तुति खोलें या बनाएं
हमेशा try-with-resources का उपयोग करें। सहेजने का कॉल try ब्लॉक के भीतर होना चाहिए।.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
// Create new
try (Presentation prs = new Presentation()) {
prs.save("new.pptx", SaveFormat.PPTX);
}
// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}चरण 3: सभी संशोधनों के बाद सहेजें
रखें save() कॉल को try ब्लॉक के अंदर अंतिम कथन के रूप में रखें, सभी संशोधनों के पूर्ण होने के बाद।.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 300, 100
);
shape.addTextFrame("Hello, World!");
prs.save("output.pptx", SaveFormat.PPTX);
}चरण 4: अलग पथ पर सहेजें
मूल फ़ाइल को संशोधित किए बिना नई फ़ाइल बनाने के लिए अलग आउटपुट पथ पास करें:
try (Presentation prs = new Presentation("template.pptx")) {
// modify ...
prs.save("customized.pptx", SaveFormat.PPTX);
}यह template.pptx फ़ाइल संशोधित नहीं की गई है; customized.pptx बनाया जाता है (या यदि यह पहले से मौजूद है तो अधिलेखित किया जाता है)।.
चरण 5: आउटपुट की पुष्टि करें
जब try ब्लॉक समाप्त हो जाता है, फ़ाइल पूरी और बंद हो जाती है। जाँचें कि यह मौजूद है:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
+ ", size: " + Files.size(output) + " bytes");समर्थित सहेजने का फ़ॉर्मेट
| फ़ॉर्मेट | Enum मान | समर्थित |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | हाँ |
| N/A | नहीं | |
| HTML | N/A | नहीं |
| SVG | N/A | नहीं |
| PNG / JPEG | N/A | नहीं |
| ODP (OpenDocument) | N/A | नहीं |
केवल PPTX पूरी तरह से समर्थित है। किसी अन्य को पास करना SaveFormat मान को prs.save(path, format) चुपचाप PPTX के रूप में सहेजता है — कोई अपवाद नहीं फेंका जाता और फ़ॉर्मेट तर्क को अनदेखा किया जाता है।. UnsupportedOperationException केवल … द्वारा फेंका जाता है prs.save(ISaveOptions options), फ़ॉर्मेट-आधारित ओवरलोड द्वारा नहीं।.
सामान्य समस्याएँ और समाधान
java.io.IOException: Permission denied
आउटपुट फ़ाइल किसी अन्य एप्लिकेशन में खुली है (उदाहरण के लिए, PowerPoint में फ़ाइल खुली है)। सहेजने से पहले अन्य एप्लिकेशन में फ़ाइल को बंद करें।.
फ़ाइल बनाई गई है लेकिन खाली या भ्रष्ट दिखती है
सुनिश्चित करें prs.save() को try ब्लॉक के अंदर कॉल किया जाता है, उसके बाद नहीं। जब try-with-resources ब्लॉक समाप्त हो जाता है, तो Presentation ऑब्जेक्ट नष्ट कर दिया जाता है और बाद के कॉल विफल हो जाएंगे।.
UnsupportedOperationException सहेजते समय
यह तब होता है जब उपयोग किया जाता है prs.save(ISaveOptions options) — यह ISaveOptions-आधारित ओवरलोड लागू नहीं किया गया है। नोट: गैर-PPTX पास करना SaveFormat को prs.save(path, format) करता है नहीं इस अपवाद को फेंके नहीं; यह चुपचाप PPTX के रूप में सहेजता है।.
अक्सर पूछे जाने वाले प्रश्न
क्या मैं उसी फ़ाइल में सहेज सकता हूँ जिसे मैंने खोला था?
हाँ। उसी पथ में सहेजने से मूल फ़ाइल ओवरराइट हो जाती है:
try (Presentation prs = new Presentation("deck.pptx")) {
// modify ...
prs.save("deck.pptx", SaveFormat.PPTX); // overwrites original
}क्या मैं OutputStream में सहेज सकता हूँ?
हाँ। यह save() विधि एक को स्वीकार करती है OutputStream:
import java.io.FileOutputStream;
try (Presentation prs = new Presentation();
FileOutputStream fos = new FileOutputStream("output.pptx")) {
prs.save(fos, SaveFormat.PPTX);
}क्या सहेजने से वह सामग्री बनी रहती है जिसे मैंने संशोधित नहीं किया है?
हाँ। मूल फ़ाइल के अज्ञात XML भाग शाब्दिक रूप से संरक्षित रहते हैं। लाइब्रेरी केवल दस्तावेज़ मॉडल के उन भागों को सीरियलाइज़ करती है जिन्हें वह समझती है, और किसी भी अपरिचित XML को वैसे ही पास कर देती है।.