كيفية حفظ العروض التقديمية في Java
Aspose.Slides FOSS for Java saves presentations exclusively to .pptx تنسيق باستخدام prs.save(path, SaveFormat.PPTX).هذا الدليل يغطي نموذج التخزين الصحيح، وتوفير إلى مسار مختلف، والأخطاء الشائعة المتعلقة التوفين.
خطوة بخطوة دليل
الخطوة 1: إضافة الاعتماد على Maven
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>26.7.0</version>
</dependency>الخطوة 2: فتح أو إنشاء عرض
استخدم دائما الموارد محاولة مع. يجب أن يحدث استدعاء التخزين داخل كتلة التجربة.
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);
}الخطوة الثالثة: حفظ بعد كل التعديلات
موقع الـ save() اتصل كآخر بيان داخل كتلة المحاولة ، بعد أن تكون جميع التعديلات قد انتهت.
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 (وَإِنْ كُنَّا مُرْسِلِينَ فَمَا جَاءَهُمْ) أي إن كانوا قد خلقوا.
الخطوة الخامسة: تحقق من النتيجة.
بعد خروج الكتلة التجريبية ، يتم الانتهاء من الملف وإغلاقه.تحقق من وجوده:
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) - مكتب مفتوح XML | SaveFormat.PPTX | نعم |
| N/A | لا | |
| HTML | N/A | لا |
| SVG | N/A | لا |
| PNG / JPEG | N/A | لا |
| ODP (أوراق النشر المفتوحة) | N/A | لا |
فقط PPTX مدعومة بالكامل. SaveFormat قيمة إلى prs.save(path, format) يُنقذ صامتًا مثل PPTX - لا يتم رمي أي استثناء ويتم تجاهل الحجة النموذجية. UnsupportedOperationException لا يُرمي إلا من خلال prs.save(ISaveOptions options),لا من خلال التحميلات القائمة على النموذج.
مشكلات و تصحيحات مشتركة
java.io.IOException: Permission denied
يتم فتح ملف الناتج في تطبيق آخر (على سبيل المثال، يحتوي PowerPoint على الملف مفتوح).
يتم إنشاء الملف ولكن يبدو فارغا أو مكسورة
ضمان prs.save() يتم استدعاء داخل كتلة المحاولة ، وليس بعد ذلك.بعد خروج كتل الموارد المطلوبة ، فإن 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 التي لا يعرفها.