Câu hỏi thường gặp

Câu hỏi thường gặp

Câu hỏi thường gặp

Làm thế nào để cài đặt Aspose.Slides FOSS?

Thêm phụ thuộc Maven vào pom.xml của bạn. Yêu cầu Java 21 hoặc phiên bản mới hơn.

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

Xác minh việc cài đặt:

import org.aspose.slides.foss.Presentation;

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

Không cần Microsoft Office hoặc bất kỳ môi trường chạy hệ thống nào khác.


Tại sao tôi phải gọi dispose() trên Presentation?

Lớp Presentation quản lý các tài nguyên gói OPC nội bộ. Nếu không gọi dispose(), các tài nguyên đó sẽ không được giải phóng, có thể gây rò rỉ bộ nhớ hoặc khóa tệp. Luôn sử dụng try-finally:

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

Ngoài ra, hãy sử dụng try-with-resources vì Presentation triển khai AutoCloseable:

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

Tôi có thể lưu sang những định dạng tệp nào?

Enum SaveFormat định nghĩa các hằng cho nhiều định dạng — PPTX, PDF, HTML, SVG, JPEG, PNG, và các định dạng khác — để tương thích API với phiên bản thương mại. Khi chạy tại thời gian thực trong phiên bản FOSS này, tất cả các overload save() bỏ qua đối số định dạng và luôn ghi ra đầu ra PPTX. Việc truyền SaveFormat.PDF biên dịch thành công nhưng tạo ra một tệp .pptx, không phải .pdf.

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

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

Xuất sang các định dạng không phải PPTX không khả dụng về chức năng trong phiên bản này. Sử dụng SaveFormat.PPTX cho tất cả các thao tác lưu.


Tôi có thể mở các tệp .ppt (PowerPoint 97-2003 cũ) không?

Không. Chỉ hỗ trợ các tệp .pptx (Office Open XML). Định dạng nhị phân .ppt cũ không được thư viện này xử lý.


Làm thế nào để tôi truy cập các slide?

Slides là một bộ sưu tập có chỉ số bắt đầu từ 0 có thể truy cập qua prs.getSlides():

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

Làm thế nào để thêm slide thứ hai?

Sử dụng prs.getSlides().addEmptySlide() với bố cục:

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

Làm thế nào để đặt màu nền cho slide?

Màu nền slide không được hỗ trợ trong phiên bản này của Aspose.Slides FOSS. Không có phương thức getBackground() trên ISlide hoặc bất kỳ lớp nào khác trong thư viện này. Nền slide được cố định khi bản trình chiếu được tạo từ mẫu của nó. Một phiên bản tương lai có thể thêm điều khiển nền.


Làm thế nào để tôi sử dụng NullableBool?

NullableBool là một enum ba trạng thái được sử dụng cho các thuộc tính định dạng. Sử dụng NullableBool.TRUE (không phải true của Java) cho các thuộc tính in đậm, in nghiêng và các thuộc tính tương tự:

import org.aspose.slides.foss.NullableBool;

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

Tại sao việc đặt màu văn bản không có hiệu lực?

Bạn cũng phải đặt fillType thành FillType.SOLID trước khi gán màu:

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

Tôi có thể sử dụng biểu đồ hoặc SmartArt không?

Không. Biểu đồ, SmartArt, đối tượng OLE, hoạt ảnh, chuyển tiếp, siêu liên kết, macro VBA và chữ ký số không được triển khai trong phiên bản này và sẽ gây ra UnsupportedOperationException.


Thư viện có an toàn với luồng không?

Mỗi đối tượng Presentation là độc lập. Việc tạo và sử dụng các thể hiện Presentation riêng biệt từ các luồng riêng là an toàn miễn là bạn không chia sẻ một đối tượng Presentation duy nhất giữa các luồng mà không có sự đồng bộ bên ngoài.


Làm thế nào để nhúng một hình ảnh?

Đọc các byte hình ảnh và thêm chúng vào prs.getImages(), sau đó tạo một 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);

Xem thêm

 Tiếng Việt