Често задавани въпроси
Често задавани въпроси
Как да инсталирам Aspose.Slides FOSS?
Добавете Maven зависимостта към вашия pom.xml. Необходим е Java 21 или по-нов.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Проверете инсталацията:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Не се изисква Microsoft Office или друга системна среда за изпълнение.
Защо трябва да извикам dispose() на Presentation?
Класът Presentation управлява вътрешните ресурси на OPC пакет. Без извикване на dispose(), тези ресурси не се освобождават, което може да доведе до изтичане на памет или заключване на файлове. Винаги използвайте try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Алтернативно, използвайте try-with-resources, тъй като Presentation реализира AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}В кои файлови формати мога да запазя?
Enum‑ът SaveFormat определя константи за множество формати — PPTX, PDF, HTML, SVG, JPEG, PNG и други — за съвместимост на API с комерсиалното издание. По време на изпълнение в това FOSS издание, всички препълвания save() игнорират аргумента за формат и винаги записват изход в PPTX. Предаване на SaveFormat.PDF се компилира правилно, но създава файл .pptx, а не .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);Експортирането в формати, различни от PPTX, не е функционално достъпно в това издание. Използвайте SaveFormat.PPTX за всички операции по запазване.
Мога ли да отворя .ppt (стари PowerPoint 97-2003) файлове?
Не. Само .pptx (Office Open XML) файлове се поддържат. Наследеният .ppt двоичен формат не се обработва от тази библиотека.
Как да достъпя слайдовете?
Слайдовете са колекция с нулева индексация, достъпна чрез prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Как да добавя втори слайд?
Използвайте prs.getSlides().addEmptySlide() с оформление:
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);
}Как да зададете цвета на фона на слайда?
Цветът на фона на слайда не се поддържа в това издание на Aspose.Slides FOSS. Няма метод getBackground() в ISlide или в който и да е друг клас в тази библиотека. Фонът на слайда е фиксиран, когато презентацията се създава от шаблона й. В бъдещо издание може да бъде добавен контрол на фона.
Как да използвам NullableBool?
NullableBool е три-стойностен изброим тип, използван за свойства на форматиране. Използвайте NullableBool.TRUE (а не Java true) за удебеляване, курсив и подобни свойства:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);Защо задаването на цвят на текста няма ефект?
Трябва също да зададете fillType на FillType.SOLID преди да зададете цвета:
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));Мога ли да използвам диаграми или SmartArt?
Не. Диаграми, SmartArt, OLE обекти, анимации, преходи, хипервръзки, VBA макроси и цифрови подписи не са реализирани в това издание и предизвикват UnsupportedOperationException.
Библиотеката е безопасна за многопоточност?
Всеки Presentation обект е независим. Създаването и използването на отделни Presentation екземпляри от отделни нишки е безопасно, стига да не споделяте един единствен Presentation обект между нишките без външна синхронизация.
Как да вмъкна изображение?
Прочетете байтовете на изображението и ги добавете към prs.getImages(), след това създайте 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);