איך לטעון מצגות בJava
Aspose.Slides FOSS for Java lets you open any .pptx קובץ, בדוק את תוכנו, או שמור אותו חזרה ל‑PPTX או חילץ נתונים ממנו. מדריך זה מכסה פתיחת קובץ, מעבר על השקופיות, קריאת טקסט של צורות, והחזרה של השמירה.
מדריך שלב אחר שלב
שלב 1: הוסף את תלות Maven
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>שלב 2: פתיחת מצגת קיימת
העבר את נתיב הקובץ ל‑ Presentation קונסטרקטור. השתמש ב‑try-with-resources כדי להבטיח ניקוי.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("input.pptx")) {
System.out.println("Slide count: " + prs.getSlides().size());
prs.save("output.pptx", SaveFormat.PPTX);
}חלקי XML לא ידועים בקובץ המקור נשמרים במדויק: הספרייה לעולם אינה מסירה תוכן שהיא עדיין לא מבינה.
שלב 3: בדיקת שקופיות
עבור על כל השקופיות והדפס את מספר הצורות בכל אחת:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
for (int i = 0; i < prs.getSlides().size(); i++) {
ISlide slide = prs.getSlides().get(i);
int shapeCount = slide.getShapes().size();
System.out.println("Slide " + i + ": " + shapeCount + " shapes");
}
}שלב 4: קריאת טקסט הצורה
עבור על הצורות וקרא טקסט מצורות שיש להן TextFrame:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
for (ISlide slide : prs.getSlides()) {
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
ITextFrame tf = autoShape.getTextFrame();
if (tf != null && !tf.getText().isEmpty()) {
System.out.println(" Shape text: " + tf.getText());
}
}
}
}
}שלב 5: קריאת תכונות המסמך
גש למאפייני המסמך המרכזיים מ‑ prs.getDocumentProperties():
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation("deck.pptx")) {
IDocumentProperties props = prs.getDocumentProperties();
System.out.println("Title: " + props.getTitle());
System.out.println("Author: " + props.getAuthor());
System.out.println("Subject: " + props.getSubject());
}שלב 6: שמירה מעגלית
לאחר בדיקה או שינוי של המצגת, שמור אותה חזרה ל‑PPTX:
prs.save("output.pptx", SaveFormat.PPTX);שמירה לנתיב שונה יוצרת קובץ חדש. שמירה לאותו נתיב מחליפה את הקובץ המקורי.
בעיות נפוצות ותיקונים
java.io.FileNotFoundException
בדוק שהנתיב ל‑ .pptx קובץ נכון יחסית לתיקיית העבודה. השתמש ב‑ java.nio.file.Paths ליצירת נתיב חזק:
import java.nio.file.Path;
import java.nio.file.Paths;
Path path = Paths.get("assets", "deck.pptx");
try (Presentation prs = new Presentation(path.toString())) {
// ...
}Exception: File format is not supported
הספרייה תומכת ב‑ .pptx (Office Open XML) בלבד. קבצים ישנים .ppt (binary PowerPoint 97-2003) אינם נתמכים.
לצורות אין שיטה getTextFrame()
חלק מהצורות (Connectors, PictureFrames, GroupShapes) אין להן מסגרת טקסט. בדוק עם instanceof IAutoShape לפני ההמרה וגישה לטקסט.
שאלות נפוצות
האם הטעינה משמרת את כל התוכן המקורי?
כן. חלקי XML לא ידועים נשמרים במדויק בעת שמירה מעגלית. הספרייה ממירה רק את החלקים של מודל המסמך שהיא מבינה, ומעבירה הלאה כל XML שהיא לא מזהה.
האם ניתן לטעון קובץ PPTX מוגן בסיסמה?
מצגות מוגנות בסיסמה (מוצפנות) אינן נתמכות בגרסה זו.
האם טעינה מ‑InputStream נתמכת?
כן. ה‑ Presentation קונסטרקטור מקבל an InputStream:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}