Introduction

Aspose.Slides FOSS for C++ (aspose_slides_foss) là một thư viện miễn phí, nguồn mở C++20 để tạo và thao tác các bản trình bày PowerPoint theo chương trình. được xây dựng hoàn toàn trong C ++ bản địa với không có phụ thuộc vào thời gian chạy bên ngoài hơn CMake 3.20+, nó cung cấp cho người phát triển quyền kiểm soát đầy đủ trên tệp PPTX mà không yêu cầu Microsoft Office hoặc bất kỳ phần mềm độc quyền nào.

Thư viện được phát hành theo giấy phép MIT, làm cho nó phù hợp cho cả các dự án thương mại và phi thương hiệu. API công cộng sống trong một Aspose::Slides::Foss namespace và cung cấp một mô hình đối tượng phong phú bao gồm các bản trình bày, slides, hình dạng, bảng, khung văn bản, tài liệu thuộc tính, bình luận, và PPTX xuất khẩu.

Bài viết này đi qua bề mặt API cốt lõi: các lớp học và phương pháp bạn sẽ sử dụng thường xuyên nhất khi xây dựng, định dạng và tiết kiệm trình bày.


Những gì được bao gồm

Giới thiệu và quản lý Slide

Các Presentation lớp là điểm nhập.Tạo một ví dụ mới cho bạn một slide mặc định mà ngay lập tức sẵn sàng cho nội dung.Bạn truy cập slides thông qua SlideCollection Trở lại bởi slides(), hỗ trợ truy cập được chỉ định, iteration, loại bỏ và sắp xếp lại.

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

Presentation pres;
auto& slide = pres.slides()[0]; // first slide
// Work with the slide...
pres.save("output.pptx", SaveFormat::PPTX);

Hình dạng và AutoShapes

Mỗi slide cho thấy một ShapeCollection Thông qua nó shapes() Bộ sưu tập cung cấp các phương pháp nhà máy để thêm các loại hình khác nhau: add_auto_shape cho các hình dạng địa phương tiêu chuẩn (cây thẳng, ellipses, triangles), add_connector Đối với các kết nối đường, add_table Đối với các bảng, và add_picture_frame cho hình ảnh.

auto& slide = pres.slides()[0];

// Add a rectangle
auto& rect = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100);

// Add an ellipse
auto& ellipse = slide.shapes().add_auto_shape(
    ShapeType::ELLIPSE, 400, 50, 150, 150);

// Add a connector between shapes
auto& conn = slide.shapes().add_connector(
    ShapeType::BENT_CONNECTOR3, 0, 0, 1, 1);

Các ShapeCollection cũng hỗ trợ size(), remove(), remove_at(), reorder(), index_of(), và clear() Quản lý hình dạng sau khi tạo ra.

Text and Paragraph Formatting (Tập trình văn bản và đoạn)

Các hình thức có thể giữ văn bản qua TextFrame.Sử dụng add_text_frame() trên một AutoShape để thêm nội dung văn bản, hoặc truy cập vào khung hiện có thông qua text_frame().Văn bản được sắp xếp thành các đoạn, mỗi phần chứa một hoặc nhiều phần. BasePortionFormat lớp thể hiện các đặc tính phong cách chữ cái bao gồm dũng cảm, italic, kiểu chữ dưới, capitalization, strikethrough và màu chữ.

auto& shape = pres.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello, world!");
auto text = shape.text_frame()->text(); // "Hello, world!"

Chọn, Gradient và Visual Effects

Mỗi hình thức cung cấp một FillFormat Truy cập qua fill_format().Bạn có thể đặt các lấp đầy vững chắc, lưỡng gradient hoặc lưới mô hình thông qua set_fill_type() Phương pháp. gradient fills được cấu hình thông qua các GradientFormat đối tượng, hỗ trợ góc linear, hình dạng gradient và các điểm dừng màu qua GradientStopCollection.

auto& shape = slide.shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 300, 150);
shape.fill_format().set_fill_type(FillType::GRADIENT);
auto& gf = shape.fill_format().gradient_format();
gf.set_gradient_shape(GradientShape::LINEAR);
gf.set_linear_gradient_angle(45);
gf.gradient_stops().add(0.0f, Color::blue);
gf.gradient_stops().add(1.0f, Color::red);

Các EffectFormat lớp học (được truy cập qua effect_format()(c) thêm ánh sáng, bóng bên ngoài và hiệu ứng cạnh mềm. mỗi hiệu quả được kích hoạt bằng một phương pháp dành riêng (enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()(c) và được cấu hình thông qua đối tượng trả lại của nó.

Tables

Bảng được tạo ra với add_table() trên bộ sưu tập hình dạng. bạn cung cấp chiều rộng cột và độ cao hàng như vectors. Table Object Phát hiện rows()columns() Bộ sưu tập và cá nhân Cell - Hỗ trợ nội dung văn bản qua TextFrame.

std::vector<double> col_widths = {100, 150, 200};
std::vector<double> row_heights = {40, 40, 40};
auto& table = slide.shapes().add_table(
    50, 50, col_widths, row_heights);
// table.rows().size() == 3
// table.columns().size() == 3

Tài liệu tài sản và bình luận

Các DocumentProperties lớp cho phép bạn thiết lập các metadata như tiêu đề, tác giả, chủ đề , từ khóa, thể loại, số đánh giá và thời gian. truy cập nó thông qua đối tượng trình bày.

Các bình luận được quản lý thông qua CommentAuthorCollectionCommentCollection.Bạn thêm các tác giả với add_author(), sau đó thêm bình luận vào các nhãn cụ thể ở các đường phối cụ thuộc.

Presentation pres;
auto& author = pres.comment_authors().add_author("Alice", "A");
auto& slide = pres.slides()[0];
auto& comment = author.comments().add_comment(
    "Review note", slide, PointF(2.0f, 3.0f), now);

Khởi động nhanh

Xây dựng từ nguồn

Thư viện yêu cầu CMake 3.20+ và một máy tính có khả năng C++20. Clone repository và xây dựng:

git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Ví dụ tối thiểu

#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];

    // Add a shape with text
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 300, 100, false);
    shape.add_text_frame("Hello from Aspose.Slides FOSS!");

    // Apply a solid fill
    shape.fill_format().set_fill_type(FillType::SOLID);
    shape.fill_format().solid_fill_color().set_color(Color::blue);

    // Save
    pres.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

Các định dạng hỗ trợ

Các SaveFormat enum xác định tất cả các mục tiêu xuất khẩu. Các định dạng sau được xác nhận trong mã nguồn:

FormatExtensionReadWrite
PPTX.pptx
PPT.pptPlanned
PPSX.ppsxPlanned
PPTM.pptmPlanned
PPSM.ppsmPlanned
POTX.Đồ họa: PotxPlanned
POTM.Đồ họaPlanned
POT.PotPlanned
PPS.ppsPlanned
ODP.Đáp: ODPPlanned
OTP.tpPlanned
FODP.Phân tíchPlanned
PDF.pdfPlanned
XPS.XPSPlanned
HTML.htmlPlanned
HTML5.htmlPlanned
TIFF.TiffPlanned
GIF.GIFPlanned
SWF.swfPlanned
MD.MdPlanned
XML.XmlPlanned

Lưu ý : Hiện tại chỉ xuất PPTX được thực hiện. các giá trị định dạng khác tồn tại trong SaveFormat enum cho tương thích trước nhưng vẫn chưa hoạt động. save() phương pháp luôn tạo ra PPTX output bất kể thông số định dạng.


Open Source & Giấy phép

Aspose.Slides FOSS for C++ is released under the MIT license. You can use it freely in personal projects, commercial applications, and redistributed libraries. There are no API keys, watermarks, or usage limits. The full source code is available on GitHub at https://github.com/aspose-slides-foss/Aspose.Slides - FOSS-for-Cpp.


bắt đầu

Chuẩn bị để tích hợp Aspose.Slides FOSS vào dự án C++ của bạn? đây là các nguồn lực chính:

Tài nguyên liên quan