คำถามที่พบบ่อย
คำถามที่พบบ่อย
ฉันจะติดตั้ง 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 หรือ runtime ของระบบอื่นใด.
ทำไมต้องเรียก 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 implements AutoCloseable:
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}ฉันสามารถบันทึกเป็นรูปแบบไฟล์ใดได้บ้าง?
enum SaveFormat กำหนดค่าคงที่สำหรับหลายรูปแบบ — PPTX, PDF, HTML, SVG, JPEG, PNG, และอื่น ๆ — เพื่อความเข้ากันได้ของ API กับรุ่นเชิงพาณิชย์
ในขณะทำงานของรุ่น FOSS นี้, การ overload ทั้งหมดของ 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 เป็น enum แบบสามสถานะที่ใช้สำหรับคุณสมบัติการจัดรูปแบบ ใช้ NullableBool.TRUE (ไม่ใช่ true ของ Java) สำหรับตัวหนา ตัวเอียง และคุณสมบัติที่คล้ายกัน:
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 ได้หรือไม่?
ไม่มี Charts, SmartArt, OLE objects, animations, transitions, hyperlinks, VBA macros, และ digital signatures ไม่ได้ถูกนำมาใช้ในรุ่นนี้และทำให้เกิด UnsupportedOperationException.
ไลบรารีนี้ปลอดภัยต่อการทำงานหลายเธรดหรือไม่?
แต่ละ Presentation object เป็นอิสระ การสร้างและใช้แยก Presentation instances จากเธรดแยกต่างหากนั้นปลอดภัยตราบใดที่คุณไม่แชร์ Presentation object เพียงหนึ่งอันข้ามเธรดโดยไม่มีการซิงโครไนซ์ภายนอก.
ฉันจะฝังรูปภาพได้อย่างไร?
อ่านไบต์ของรูปภาพและเพิ่มลงใน 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);