Häufig gestellte Fragen
Häufig gestellte Fragen
Wie installiere ich Aspose.Slides FOSS?
Fügen Sie die Maven‑Abhängigkeit zu Ihrem pom.xml hinzu. Java 21 oder höher ist erforderlich.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Installation überprüfen:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Kein Microsoft Office oder andere Systemlaufzeit ist erforderlich.
Warum muss ich dispose() bei Presentation aufrufen?
Die Presentation‑Klasse verwaltet interne OPC‑Paketressourcen. Ohne Aufruf von dispose() werden diese Ressourcen nicht freigegeben, was zu Speicherlecks oder Dateisperren führen kann. Verwenden Sie immer try‑finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Alternativ verwenden Sie try-with-resources, da Presentation AutoCloseable implementiert:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}In welche Dateiformate kann ich speichern?
Das SaveFormat Enum definiert Konstanten für viele Formate — PPTX, PDF, HTML, SVG, JPEG, PNG und weitere — für die API‑Kompatibilität mit der kommerziellen Edition. Zur Laufzeit in dieser FOSS‑Edition ignorieren alle save()‑Überladungen das Format‑Argument und schreiben stets PPTX‑Ausgabe. Das Übergeben von SaveFormat.PDF kompiliert korrekt, erzeugt jedoch eine .pptx‑Datei, nicht eine .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);Der Export in Formate, die nicht PPTX sind, ist in dieser Edition funktional nicht verfügbar. Verwenden Sie SaveFormat.PPTX für alle Speicheroperationen.
Kann ich .ppt (alte PowerPoint 97-2003) Dateien öffnen?
Nein. Nur .pptx (Office Open XML)-Dateien werden unterstützt. Das veraltete .ppt-Binärformat wird von dieser Bibliothek nicht verarbeitet.
Wie greife ich auf Folien zu?
Folien sind eine nullbasierte Sammlung, die über prs.getSlides() zugänglich ist:
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Wie füge ich eine zweite Folie hinzu?
Verwenden Sie prs.getSlides().addEmptySlide() mit einem Layout:
try (Presentation prs = new Presentation()) {
ILayoutSlide layout = prs.getLayoutSlides().get(0);
prs.getSlides().addEmptySlide(layout);
ISlide slide2 = prs.getSlides().get(1);
prs.save("two-slides.pptx", SaveFormat.PPTX);
}Wie stelle ich die Hintergrundfarbe der Folie ein?
Die Folienhintergrundfarbe wird in dieser Ausgabe von Aspose.Slides FOSS nicht unterstützt. Es gibt keine getBackground()‑Methode in ISlide oder einer anderen Klasse dieser Bibliothek. Der Folienhintergrund ist fest, wenn die Präsentation aus ihrer Vorlage erstellt wird. Eine zukünftige Ausgabe könnte die Hintergrundsteuerung hinzufügen.
Wie benutze ich NullableBool?
NullableBool ist ein Tri-State-Enum, das für Formatierungseigenschaften verwendet wird. Verwenden Sie NullableBool.TRUE (nicht das Java-true) für fett, kursiv und ähnliche Eigenschaften:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);Warum hat das Festlegen der Textfarbe keine Wirkung?
Sie müssen außerdem fillType auf FillType.SOLID setzen, bevor Sie die Farbe zuweisen:
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 200, 0, 0));Kann ich Diagramme oder SmartArt verwenden?
Nein. Diagramme, SmartArt, OLE‑Objekte, Animationen, Übergänge, Hyperlinks, VBA‑Makros und digitale Signaturen sind in dieser Ausgabe nicht implementiert und lösen UnsupportedOperationException aus.
Ist die Bibliothek thread‑sicher?
Jedes Presentation‑Objekt ist unabhängig. Das Erstellen und Verwenden separater Presentation‑Instanzen aus separaten Threads ist sicher, solange Sie kein einzelnes Presentation‑Objekt über Threads hinweg ohne externe Synchronisation teilen.
Wie bette ich ein Bild ein?
Lese die Bild‑Bytes und füge sie zu prs.getImages() hinzu, erstelle dann ein PictureFrame:
import org.aspose.slides.foss.ShapeType;
byte[] imageData = java.nio.file.Files.readAllBytes(
java.nio.file.Paths.get("logo.png")
);
IPPImage image = prs.getImages().addImage(imageData);
slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);