Các tính năng và khả năng

Các tính năng và khả năng

Aspose.Slides FOSS for Java provides a broad set of capabilities for working with PowerPoint .pptx tập tin một cách lập trình. Trang này liệt kê tất cả các khu vực tính năng được hỗ trợ cùng với các ví dụ mã đại diện.


Nhập/Xuất Bản trình chiếu

Mở một tệp hiện có .pptx tập tin hoặc tạo một tệp mới, sau đó lưu lại dưới định dạng PPTX.

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

// Open an existing presentation
try (Presentation prs = new Presentation("input.pptx")) {
    System.out.println("Slide count: " + prs.getSlides().size());
    prs.save("output.pptx", SaveFormat.PPTX);
}

// Create a new presentation (starts with one blank slide)
try (Presentation prs = new Presentation()) {
    prs.save("new.pptx", SaveFormat.PPTX);
}

Lưu ý: PPTX là định dạng lưu duy nhất được hỗ trợ. Xuất ra PDF, HTML, SVG, hoặc hình ảnh không khả dụng.

Các phần XML không xác định trong tệp nguồn được giữ nguyên khi lưu, vì vậy việc mở và lưu lại một .pptx sẽ không bao giờ loại bỏ nội dung mà thư viện chưa hiểu.


Quản lý Slide

Thêm, xóa, sao chép và sắp xếp lại các slide.

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

try (Presentation prs = new Presentation()) {
    // Access the first slide
    var slide = prs.getSlides().get(0);

    // Add an additional blank slide at the end
    prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));

    System.out.println("Total slides: " + prs.getSlides().size());
    prs.save("multi-slide.pptx", SaveFormat.PPTX);
}

Hình dạng

Thêm AutoShapes, PictureFrames, Tables và Connectors vào một slide.

AutoShapes

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

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    // Add a rectangle at (x=50, y=50) with width=300, height=100
    var shape = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 50, 300, 100);
    shape.addTextFrame("Aspose.Slides FOSS");
    prs.save("shapes.pptx", SaveFormat.PPTX);
}

Tables

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

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    // Column widths and row heights in points
    double[] colWidths = {120.0, 120.0, 120.0};
    double[] rowHeights = {40.0, 40.0, 40.0};
    var table = slide.getShapes().addTable(50, 50, colWidths, rowHeights);
    table.getRows().get(0).get(0).getTextFrame().setText("Product");
    table.getRows().get(0).get(1).getTextFrame().setText("Quantity");
    table.getRows().get(0).get(2).getTextFrame().setText("Price");
    prs.save("table.pptx", SaveFormat.PPTX);
}

Connectors

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

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    var box1 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 100, 150, 60);
    var box2 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 350, 100, 150, 60);
    var conn = slide.getShapes().addConnector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10);
    conn.setStartShapeConnectedTo(box1);
    conn.setStartShapeConnectionSiteIndex(3);  // right side
    conn.setEndShapeConnectedTo(box2);
    conn.setEndShapeConnectionSiteIndex(1);    // left side
    prs.save("connector.pptx", SaveFormat.PPTX);
}

Định dạng Văn bản

Định dạng văn bản ở mức đoạn và ký tự bằng cách sử dụng PortionFormat.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    var shape = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 50, 500, 150);
    var tf = shape.addTextFrame("Bold blue heading");

    var fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
    fmt.setFontHeight(28);
    fmt.setFontBold(NullableBool.TRUE);
    fmt.getFillFormat().setFillType(FillType.SOLID);
    fmt.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 0, 70, 127));

    prs.save("text.pptx", SaveFormat.PPTX);
}

NullableBool.TRUE đặt thuộc tính một cách rõ ràng; NullableBool.NOT_DEFINED kế thừa từ mẫu slide.


Các loại tô

Áp dụng tô màu đặc, gradient, họa tiết hoặc hình ảnh cho các hình dạng.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    var shape = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 50, 300, 150);

    // Solid fill
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 30, 120, 200));

    prs.save("fill.pptx", SaveFormat.PPTX);
}

Hiệu ứng trực quan

Áp dụng bóng ngoài, phát sáng, viền mềm, làm mờ, phản chiếu và bóng trong cho các hình dạng.

Các thuộc tính hiệu ứng có thể truy cập thông qua shape.getEffectFormat(). Gọi enableOuterShadowEffect(), enableGlowEffect(), enableSoftEdgeEffect(), setBlurEffect(radius, grow), enableReflectionEffect(), hoặc enableInnerShadowEffect() để cấu hình từng cái một cách độc lập.


3D Formatting

Áp dụng viền 3D, camera, bộ đèn, vật liệu và độ sâu đùn qua shape.getThreeDFormat(). Điều này kiểm soát độ sâu hình ảnh và mô hình chiếu sáng cho việc hiển thị hình dạng trong các trình xem PPTX hỗ trợ hiệu ứng 3D.


Ghi chú người thuyết trình

Đính kèm ghi chú vào bất kỳ slide nào bằng cách getNotesSlideManager().

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

try (Presentation prs = new Presentation()) {
    var notes = prs.getSlides().get(0).getNotesSlideManager().addNotesSlide();
    notes.getNotesTextFrame().setText("Key talking point: emphasize the ROI benefit.");
    prs.save("notes.pptx", SaveFormat.PPTX);
}

Bình luận

Thêm bình luận dạng chuỗi với thông tin tác giả và vị trí slide.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.drawing.PointF;
import org.aspose.slides.foss.export.SaveFormat;
import java.time.LocalDateTime;

try (Presentation prs = new Presentation()) {
    var author = prs.getCommentAuthors().addAuthor("Jane Smith", "JS");
    var slide = prs.getSlides().get(0);
    author.getComments().addComment(
        "Please verify this data before the presentation.",
        slide,
        new PointF(2.0f, 2.0f),
        LocalDateTime.now()
    );
    prs.save("comments.pptx", SaveFormat.PPTX);
}

Hình ảnh nhúng

Nhúng một hình ảnh từ tệp vào bản trình chiếu và thêm nó vào slide dưới dạng một PictureFrame.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Path;

try (Presentation prs = new Presentation()) {
    byte[] imageData = Files.readAllBytes(Path.of("logo.png"));
    var image = prs.getImages().addImage(imageData);
    var slide = prs.getSlides().get(0);
    slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);
    prs.save("with-image.pptx", SaveFormat.PPTX);
}

Thuộc tính tài liệu

Đọc và ghi các thuộc tính tài liệu core, app và tùy chỉnh.

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

try (Presentation prs = new Presentation()) {
    var props = prs.getDocumentProperties();

    // Core properties
    props.setTitle("Q1 Results");
    props.setAuthor("Finance Team");
    props.setSubject("Quarterly Review");
    props.setKeywords("Q1, finance, results");

    // Custom property
    props.setCustomPropertyValue("ReviewedBy", "Legal Team");

    prs.save("deck.pptx", SaveFormat.PPTX);
}

Các hạn chế đã biết

Các khu vực sau gây ra UnsupportedOperationException và không có trong phiên bản này:

Khu vựcTrạng thái
Biểu đồChưa triển khai
SmartArtChưa triển khai
Hoạt ảnh và chuyển đổiChưa triển khai
Xuất PDF / HTML / SVG / hình ảnhChưa triển khai (chỉ PPTX)
Macro VBAChưa triển khai
Chữ ký sốChưa triển khai
Siêu liên kết và cài đặt hành độngChưa triển khai
Đối tượng OLEChưa thực hiện
Văn bản toán họcChưa thực hiện

Xem Thêm

 Tiếng Việt