คำถามที่พบบ่อย

คำถามที่พบบ่อย

คำถามที่พบบ่อย

ฉันจะติดตั้ง 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);
}

ฉันสามารถบันทึกเป็นรูปแบบไฟล์ใดได้บ้าง?

รองรับเฉพาะ PPTX เท่านั้น:

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

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

การส่งออกเป็น PDF, HTML, SVG หรือรูปแบบภาพ (PNG, JPEG) ไม่พร้อมใช้งานในฉบับนี้.


ฉันสามารถเปิด .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 ได้หรือไม่?

ไม่มี ชาร์ต, SmartArt, วัตถุ OLE, แอนิเมชัน, การเปลี่ยนฉาก, ไฮเปอร์ลิงก์, แมโคร VBA, และลายเซ็นดิจิทัล ไม่ได้ถูกนำมาใช้ในฉบับนี้และทำให้เกิด 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);

ดูเพิ่มเติม

 ภาษาไทย