1. Sản Phẩm
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS cho C++

Tạo, đọc và chỉnh sửa các bản trình bày PowerPoint từ C++ — miễn phí và mã nguồn mở, không cần phụ thuộc vào Office.

Thư viện C++ mã nguồn mở cho các bản trình bày PowerPoint

Aspose.Slides FOSS cho C++ là một thư viện có giấy phép MIT để làm việc với các tệp PowerPoint .pptx. Tích hợp nó qua CMake FetchContent và ngay lập tức bắt đầu tạo, đọc và chỉnh sửa các bản trình chiếu mà không cần cài đặt Microsoft Office hoặc bất kỳ môi trường chạy độc quyền nào.

Thư viện cung cấp một API Presentation được xây dựng xung quanh Presentation, Slide, ShapeCollection, TextFrame, ParagraphPortion, mô hình khái niệm được PowerPoint sử dụng. Thêm và xóa slide, chèn AutoShapes, Tables và Connectors, định dạng văn bản ở mức ký tự với in đậm, in nghiêng, kích thước phông chữ và màu sắc, áp dụng màu nền đặc hoặc gradient, và thêm các hiệu ứng hình ảnh (bóng đổ, phát sáng, làm mờ, phản chiếu).

Ngữ nghĩa RAII đảm bảo việc dọn dẹp tài nguyên đáng tin cậy: hàm hủy Presentation giải phóng toàn bộ trạng thái nội bộ một cách tự động. Các phần XML không xác định gặp trong quá trình tải được giữ nguyên nguyên văn khi lưu, vì vậy việc vòng tròn không bao giờ phá hủy nội dung mà thư viện chưa hiểu. Thư viện yêu cầu một trình biên dịch tuân thủ C++20. Để biết thêm tính năng, xem Aspose.Slides for C++ enterprise edition.

API Trình chiếu và Slide

  • Tạo và mở PPTX: Tạo bản trình chiếu mới hoặc mở các tệp .pptx hiện có qua Presentation() hoặc Presentation(path).
  • Thêm và xóa các slide: Quản lý SlideCollection một cách lập trình với add_empty_slide(), remove()remove_at().
  • AutoShapes: Chèn các hình chữ nhật, hình elip, đường thẳng và các hình học ShapeType khác qua add_auto_shape().
  • Bảng và Kết nối: Thêm các hình dạng bảng có cấu trúc và các đường kết nối giữa các hình dạng qua add_connector().
  • Speaker notes: Đọc và ghi chú speaker notes cho mỗi slide thông qua NotesSlideManager.
  • Threaded comments: Truy cập các chuỗi bình luận bằng cách lặp lại pres.comment_authors() và các bình luận liên quan của chúng.

Nơi Aspose.Slides FOSS có thể được sử dụng

  • Tạo báo cáo: Tạo các bộ slide có thương hiệu từ nguồn dữ liệu mà không cần Office.
  • Tự động hoá mẫu: Điền các mẫu PPTX với nội dung động trong các pipeline CI/CD.
  • Di chuyển nội dung: Đọc các bản trình bày hiện có và tái cấu trúc hoặc thay đổi kiểu dáng các slide.
  • Embedded systems: Xử lý các tệp PPTX trong môi trường yêu cầu hiệu năng cao hoặc tài nguyên hạn chế.
  • Xử lý hàng loạt: Áp dụng các thay đổi định dạng đồng nhất trên các thư viện slide deck lớn.

Định dạng Văn bản và Hiệu ứng Hình ảnh

  • Định dạng cấp ký tự: Áp dụng in đậm, in nghiêng, kích thước phông chữ và màu sắc cho các đối tượng Portion riêng lẻ thông qua PortionFormat.
  • Đổ màu đặc và gradient: Đặt màu nền cho hình thành màu đặc hoặc gradient tuyến tính đa điểm bằng cách sử dụng FillFormatFillType.
  • Hiệu ứng bóng đổ và phát sáng: Áp dụng bóng đổ ngoài, phát sáng, làm mờ và phản chiếu cho bất kỳ hình dạng nào qua EffectFormat.
  • Căn đoạn văn: Đặt căn lề trái, trung tâm, phải hoặc căn đều cho mỗi đoạn bằng cách sử dụng ParagraphFormatset_alignment().
  • An toàn khi quay lại: Các phần XML không xác định được được giữ nguyên nguyên văn khi lưu lại.

Trải nghiệm nhà phát triển

Aspose.Slides FOSS tích hợp qua CMake FetchContent, vì vậy không cần tải xuống thủ công hay cài đặt trên toàn hệ thống. Thư viện được biên dịch từ mã nguồn cùng với dự án của bạn.

API phản chiếu mô hình đối tượng riêng của PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), vì vậy bất kỳ ai quen thuộc với mô hình đối tượng PowerPoint đều có thể sử dụng thư viện ngay lập tức. Nó được cấp phép MIT, mã nguồn mở trên GitHub và yêu cầu một trình biên dịch tuân thủ C++20.

Tạo một bản trình bày và thêm một hình

RAII đảm bảo rằng hàm hủy Presentation giải phóng tất cả tài nguyên một cách tự động khi đối tượng ra khỏi phạm vi. add_auto_shape() nhận một enum ShapeType, sau đó vị trí x/y và chiều rộng/chiều cao tính bằng điểm — text_frame của hình cung cấp quyền truy cập để đặt nội dung văn bản.

include(FetchContent)
FetchContent_Declare(
  aspose_slides_foss
  GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
  GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>

int main() {
    Aspose::Slides::Foss::Presentation prs;
    auto& slide = prs.slides()[0];

    // Add a rectangle AutoShape
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("Hello, Aspose.Slides!");

    prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
    return 0;
}
 ```cmake
include(FetchContent)
FetchContent_Declare(
  aspose_slides_foss
  GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
  GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
 

Định dạng văn bản và áp dụng hiệu ứng tô

Định dạng văn bản hoạt động ở mức Portion — đơn vị nhỏ nhất của một chuỗi ký tự. Mở tệp đã lưu, điều hướng đến phần đầu tiên của đoạn đầu tiên, và đặt các thuộc tính phông chữ trực tiếp. Đổ màu hình dạng là độc lập: đặt loại đổ màu thành đặc và chỉ định một màu.

#include <Aspose/Slides/Foss/presentation.h>

namespace asf = Aspose::Slides::Foss;

int main() {
    asf::Presentation prs("output.pptx");
    auto& shape = prs.slides()[0].shapes()[0];
    auto& portion = shape.text_frame()
        ->paragraphs()[0].portions()[0];

    // Bold, 18pt text
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Solid background fill on the shape
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}
 ```cpp
#include <Aspose/Slides/Foss/presentation.h>

namespace asf = Aspose::Slides::Foss;

int main() {
    asf::Presentation prs("output.pptx");
    auto& shape = prs.slides()[0].shapes()[0];
    auto& portion = shape.text_frame()
        ->paragraphs()[0].portions()[0];

    // Bold, 18pt text
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Solid background fill on the shape
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}
 

Câu Hỏi Thường Gặp

Công cụ Aspose.Slides FOSS cho C++ là gì?

Đây là một thư viện C++ miễn phí, có giấy phép MIT, dùng để tạo, đọc và chỉnh sửa các bản trình chiếu PowerPoint .pptx mà không cần Microsoft Office.

Các định dạng tệp nào được hỗ trợ?

.pptx là định dạng đọc/ghi được hỗ trợ. Xuất ra PDF, HTML, SVG hoặc hình ảnh không khả dụng trong phiên bản này.

Nó có yêu cầu Microsoft Office hoặc PowerPoint không?

Không. Aspose.Slides FOSS là một thư viện C++ độc lập không phụ thuộc vào Microsoft Office, COM automation, hoặc bất kỳ runtime độc quyền nào.

Làm thế nào để cài đặt nó?

Sử dụng CMake FetchContent để tích hợp thư viện trực tiếp từ GitHub. Thư viện yêu cầu một trình biên dịch tuân thủ C++20.

Tôi có thể áp dụng các hiệu ứng hình ảnh như bóng đổ và phát sáng không?

Có. Thư viện hỗ trợ các hiệu ứng bóng đổ bên ngoài, phát sáng, làm mờ và phản chiếu trên bất kỳ đối tượng hình dạng nào thông qua API EffectFormat.

Thư viện có sử dụng RAII để quản lý tài nguyên không?

Có. Trình hủy Presentation giải phóng toàn bộ trạng thái nội bộ một cách tự động, vì vậy không cần dọn dẹp rõ ràng.

Việc round-tripping một tệp PPTX có phá hủy nội dung không xác định không?

Không. Các phần XML không xác định gặp phải trong quá trình tải sẽ được giữ nguyên khi lưu, vì vậy nội dung mà thư viện chưa hiểu sẽ không bao giờ bị mất.

Tôi có thể tìm mã nguồn ở đâu?

Thư viện được cấp phép MIT và được lưu trữ trên GitHub. Các báo cáo lỗi và pull request đều được chào đón.

  

Tài Nguyên Hỗ Trợ và Học Tập

 Tiếng Việt