Často kladené otázky

Často kladené otázky

Ako nainštalujem Aspose.Slides FOSS?

Pridajte Maven závislosť do svojho pom.xml. Vyžaduje sa Java 21 alebo novšia.

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Overte inštaláciu:

import org.aspose.slides.foss.Presentation;

Presentation prs = new Presentation();
try {
    System.out.println("Slides: " + prs.getSlides().size());
} finally {
    prs.dispose();
}

Nie je potrebný Microsoft Office ani iný systémový runtime.


Prečo musím volať dispose() na Presentation?

Trieda Presentation spravuje interné zdroje OPC balíka. Bez volania dispose() nie sú tieto zdroje uvoľnené, čo môže spôsobiť úniky pamäte alebo zamknutie súborov. Vždy používajte try-finally:

Presentation prs = new Presentation("input.pptx");
try {
    // work here
    prs.save("output.pptx", SaveFormat.PPTX);
} finally {
    prs.dispose();
}

Alternatívne použite try-with-resources, pretože Presentation implementuje AutoCloseable:

try (Presentation prs = new Presentation("input.pptx")) {
    prs.save("output.pptx", SaveFormat.PPTX);
}

Do akých formátov súborov môžem uložiť?

Výčtový typ SaveFormat definuje konštanty pre mnoho formátov — PPTX, PDF, HTML, SVG, JPEG, PNG a ďalšie — pre kompatibilitu API s komerčnou edíciou. V čase behu v tejto FOSS edícii všetky preťaženia save() ignorujú argument formátu a vždy zapisujú výstup PPTX. Odovzdanie SaveFormat.PDF sa skompiluje správne, ale vytvorí súbor .pptx, nie .pdf.

import org.aspose.slides.foss.export.SaveFormat;

prs.save("output.pptx", SaveFormat.PPTX);

Export do formátov, ktoré nie sú PPTX, nie je funkčne dostupný v tejto edícii. Použite SaveFormat.PPTX pre všetky operácie ukladania.


Môžem otvoriť .ppt (staré PowerPoint 97-2003) súbory?

Nie. Podporované sú iba súbory .pptx (Office Open XML). Starý binárny formát .ppt nie je touto knižnicou spracovávaný.


Ako môžem získať prístup k snímkam?

Snímky sú nulovo indexovaná kolekcia prístupná cez prs.getSlides():

ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();

Ako pridám druhý snímok?

Použite prs.getSlides().addEmptySlide() s rozložením:

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);
}

Ako nastaviť farbu pozadia snímky?

Farba pozadia snímky nie je podporovaná v tejto edícii Aspose.Slides FOSS. V tejto knižnici neexistuje metóda getBackground() na ISlide ani v žiadnej inej triede. Pozadie snímky je pevne nastavené, keď je prezentácia vytvorená z jej šablóny. Budúca edícia môže pridať ovládanie pozadia.


Ako používam NullableBool?

NullableBool je trojstavový enum používaný pre formátovacie vlastnosti. Použite NullableBool.TRUE (nie Java true) pre tučné, kurzíva a podobné vlastnosti:

import org.aspose.slides.foss.NullableBool;

fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);

Prečo nastavenie farby textu nemá žiadny efekt?

Musíte tiež nastaviť fillType na FillType.SOLID pred priradením farby:

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));

Môžem použiť grafy alebo SmartArt?

Nie. Grafy, SmartArt, OLE objekty, animácie, prechody, hypertextové odkazy, VBA makrá a digitálne podpisy nie sú v tejto edícii implementované a vyvolávajú UnsupportedOperationException.


Je knižnica vlákno-bezpečná?

Každý Presentation objekt je nezávislý. Vytváranie a používanie samostatných Presentation inštancií z rôznych vlákien je bezpečné, pokiaľ nesdielate jediný Presentation objekt medzi vláknami bez externého synchronizovania.


Ako vložiť obrázok?

Prečítajte bajty obrázka a pridajte ich do prs.getImages(), potom vytvorte 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);

Pozri tiež

 Slovenčina