Soalan Lazim
Soalan Lazim
Bagaimana saya memasang Aspose.Slides FOSS?
Tambah kebergantungan Maven ke pom.xml anda. Java 21 atau versi lebih baru diperlukan.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Sahkan pemasangan:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
try {
System.out.println("Slides: " + prs.getSlides().size());
} finally {
prs.dispose();
}Tiada Microsoft Office atau runtime sistem lain diperlukan.
Mengapa saya mesti memanggil dispose() pada Presentation?
Kelas Presentation mengurus sumber pakej OPC dalaman. Tanpa memanggil dispose(), sumber tersebut tidak dibebaskan, yang boleh menyebabkan kebocoran memori atau kunci fail. Sentiasa gunakan try-finally:
Presentation prs = new Presentation("input.pptx");
try {
// work here
prs.save("output.pptx", SaveFormat.PPTX);
} finally {
prs.dispose();
}Sebagai alternatif, gunakan try-with-resources kerana Presentation melaksanakan AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}Format fail apa yang boleh saya simpan?
Enum SaveFormat mendefinisikan pemalar untuk banyak format — PPTX, PDF, HTML, SVG, JPEG, PNG, dan lain-lain — untuk keserasian API dengan edisi komersial. Pada masa jalan dalam edisi FOSS ini, semua overload save() mengabaikan argumen format dan selalu menulis output PPTX. Melewatkan SaveFormat.PDF mengkompilasi dengan betul tetapi menghasilkan fail .pptx, bukan .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);Eksport ke format bukan‑PPTX tidak tersedia secara fungsional dalam edisi ini. Gunakan SaveFormat.PPTX untuk semua operasi simpan.
Bolehkah saya membuka fail .ppt (PowerPoint lama 97-2003)?
Tidak. Hanya fail .pptx (Office Open XML) yang disokong. Format binari .ppt warisan tidak diuruskan oleh perpustakaan ini.
Bagaimana saya mengakses slaid?
Slaid adalah koleksi berasaskan sifar yang boleh diakses melalui prs.getSlides():
ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();Bagaimana saya menambah slaid kedua?
Gunakan prs.getSlides().addEmptySlide() dengan susun atur:
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);
}Bagaimana saya menetapkan warna latar belakang slaid?
Warna latar slaid tidak disokong dalam edisi Aspose.Slides FOSS ini. Tiada kaedah getBackground() pada ISlide atau mana-mana kelas lain dalam perpustakaan ini. Latar belakang slaid tetap apabila persembahan dibuat daripada templatnya. Edisi masa depan mungkin menambah kawalan latar belakang.
Bagaimana saya menggunakan NullableBool?
NullableBool ialah enum tiga keadaan yang digunakan untuk sifat pemformatan. Gunakan NullableBool.TRUE (bukan true Java) untuk tebal, condong, dan sifat serupa:
import org.aspose.slides.foss.NullableBool;
fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);Mengapa menetapkan warna teks tidak memberi kesan?
Anda juga mesti menetapkan fillType kepada FillType.SOLID sebelum menetapkan warna:
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));Bolehkah saya menggunakan carta atau SmartArt?
Tidak. Carta, SmartArt, objek OLE, animasi, peralihan, pautan hiper, makro VBA, dan tandatangan digital tidak dilaksanakan dalam edisi ini dan menghasilkan UnsupportedOperationException.
Adakah perpustakaan ini selamat untuk penggunaan berbilang thread?
Setiap objek Presentation adalah bebas. Membuat dan menggunakan contoh Presentation yang berasingan dari benang berasingan adalah selamat selagi anda tidak berkongsi satu objek Presentation merentasi benang tanpa penyelarasan luaran.
Bagaimana saya menyematkan imej?
Baca bait imej dan tambahkan ke prs.getImages(), kemudian cipta 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);