कैसे सहेजें प्रस्तुतियों को Python में
Aspose.Slides FOSS for Python saves presentations exclusively to .pptx फ़ॉर्मेट का उपयोग करके prs.save(path, SaveFormat.PPTX). यह गाइड सही सहेजने के पैटर्न, अलग पथ पर सहेजना, और सामान्य सहेजने से संबंधित त्रुटियों को कवर करता है।.
स्टेप बाय स्टेप गाइड
Step 1: पैकेज स्थापित करें
pip install aspose-slides-fossचरण 2: प्रस्तुति खोलें या बनाएं
हमेशा कॉन्टेक्स्ट मैनेजर का उपयोग करें। सहेजने का कॉल इस के भीतर होना चाहिए with ब्लॉक।.
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
# Create new
with slides.Presentation() as prs:
prs.save("new.pptx", SaveFormat.PPTX)
# Open existing
with slides.Presentation("input.pptx") as prs:
prs.save("output.pptx", SaveFormat.PPTX)चरण 3: अंत में सहेजें with ब्लॉक
रखें save() कॉल को अंतिम कथन के रूप में इस के भीतर with ब्लॉक में, सभी संशोधन पूर्ण होने के बाद।.
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 50, 300, 100)
shape.add_text_frame("Hello, World!")
prs.save("output.pptx", SaveFormat.PPTX)चरण 4: अलग पथ पर सहेजें
मूल फ़ाइल को बदले बिना नई फ़ाइल बनाने के लिए अलग आउटपुट पथ पास करें:
with slides.Presentation("template.pptx") as prs:
# modify ...
prs.save("customized.pptx", SaveFormat.PPTX)यह template.pptx फ़ाइल संशोधित नहीं हुई है; customized.pptx बनाई जाती है (या यदि यह पहले से मौजूद है तो ओवरराइट की जाती है)।.
चरण 5: आउटपुट की पुष्टि करें
के बाद with ब्लॉक समाप्त हो गया है, फ़ाइल पूरी और बंद है। जाँचें कि यह मौजूद है:
import os
from pathlib import Path
output = Path("output.pptx")
print(f"Saved: {output.exists()}, size: {output.stat().st_size} bytes")समर्थित सहेजने का फ़ॉर्मेट
| फ़ॉर्मेट | एनम मान | समर्थित |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | हाँ |
| N/A | नहीं | |
| HTML | N/A | नहीं |
| SVG | N/A | नहीं |
| PNG / JPEG | N/A | नहीं |
| ODP (OpenDocument) | N/A | नहीं |
केवल PPTX समर्थित है। किसी अन्य फ़ॉर्मेट में सहेजने का प्रयास करने पर त्रुटि उत्पन्न होगी। NotImplementedError या एक असमर्थित फ़ॉर्मेट त्रुटि।.
सामान्य समस्याएँ और समाधान
PermissionError: [Errno 13] Permission denied
आउटपुट फ़ाइल किसी अन्य एप्लिकेशन में खुली हुई है (जैसे, PowerPoint में फ़ाइल खुली है)। सहेजने से पहले अन्य एप्लिकेशन में फ़ाइल को बंद करें।.
फ़ाइल बन गई है लेकिन खाली या भ्रष्ट दिख रही है
सुनिश्चित करें prs.save() के भीतर कॉल किया जाता है with ब्लॉक, उसके बाद नहीं। इसके बाद with ब्लॉक समाप्त होने पर, Presentation ऑब्जेक्ट नष्ट हो जाता है और बाद के कॉल चुपचाप विफल हो जाएंगे या त्रुटि उत्पन्न करेंगे।.
NotImplementedError सहेजते समय
यह तब होता है जब आप PPTX के अलावा किसी अन्य सहेजने के फ़ॉर्मेट का उपयोग करने का प्रयास करते हैं, या सहेजते समय कोई असमर्थित सुविधा (जैसे चार्ट या एनीमेशन) का उपयोग करते हैं।.
अक्सर पूछे जाने वाले प्रश्न
क्या मैं उसी फ़ाइल में सहेज सकता हूँ जिसे मैंने खोला था?
हाँ। उसी पथ पर सहेजने से मूल फ़ाइल ओवरराइट हो जाती है:
with slides.Presentation("deck.pptx") as prs:
# modify ...
prs.save("deck.pptx", SaveFormat.PPTX) # overwrites originalक्या मैं फ़ाइल के बजाय बाइट्स बफ़र में सहेज सकता हूँ?
हाँ। एक पास करें io.BytesIO ऑब्जेक्ट सीधे को prs.save() — यह किसी भी को स्वीकार करता है BinaryIO गंतव्य:
import io
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
buf = io.BytesIO()
with slides.Presentation() as prs:
# ... modify presentation ...
prs.save(buf, SaveFormat.PPTX)
pptx_bytes = buf.getvalue()क्या सहेजने से वह सामग्री बनी रहती है जिसे मैंने संशोधित नहीं किया है?
हाँ। मूल फ़ाइल के अज्ञात XML भागों को जैसा है वैसा ही संरक्षित रखा जाता है। लाइब्रेरी केवल दस्तावेज़ मॉडल के उन भागों को सीरियलाइज़ करती है जिन्हें वह समझती है, और किसी भी अपरिचित XML को 그대로 पास कर देती है।.