Pengantar

Aspose.Slides FOSS for C++ (aspose_slides_foss) adalah perpustakaan C++20 open source gratis untuk membuat dan memanipulasi presentasi PowerPoint secara programatis. Dibangun sepenuhnya dalam bahasa asli C ++ tanpa ketergantungan waktu jalan eksternal di luar CMake 3.20+, ini memberi pengembang kontrol penuh atas file PPTX tanpa memerlukan Microsoft Office atau perangkat lunak proprietari apa pun.

Perpustakaan ini dirilis di bawah lisensi MIT, sehingga cocok untuk proyek komersial dan non-komersial. API publik tinggal di dalam sistem operasi Microsoft Windows. Aspose::Slides::Foss namespace dan menyediakan model objek yang kaya mencakup presentasi, slide, bentuk, tabel, frame teks, properti dokumen, komentar, dan ekspor PPTX.

Posting ini berjalan melalui permukaan API inti: kelas dan metode yang akan Anda gunakan paling sering saat membangun, memformat, dan menyimpan presentasi.


Apa yang Termasuk?

Presentasi dan Manajemen Slide

Pengelolaan Presentation membuat instance baru memberi Anda slide default yang segera siap untuk konten. Anda mengakses slides melalui SlideCollection dikembalikan oleh: slides(), yang mendukung akses terindeks, iterasi, penghapusan dan penataan ulang.

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

Bentuk dan AutoShapes

Setiap slide mengekspos sebuah ShapeCollection melalui shapes() Koleksi ini menyediakan metode pabrik untuk menambahkan berbagai jenis bentuk: add_auto_shape untuk bentuk geometri standar (segitiga, elips, segitig), add_connector untuk konektor jalur, add_table untuk tabel, dan add_picture_frame untuk gambar.

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

Pengelolaan ShapeCollection juga mendukung size(), remove(), remove_at(), reorder(), index_of(), dan clear() untuk mengelola bentuk setelah penciptaan.

Penulisan Teks dan Format Paragraf

Bentuk dapat menyimpan teks melalui TextFrame.Gunakan . add_text_frame() pada tanggal 1 AutoShape untuk melampirkan konten teks, atau mengakses frame yang ada melalui text_frame().Teks disusun menjadi paragraf, masing-masing berisi satu atau lebih bagian. BasePortionFormat kelas mengungkapkan sifat gaya font termasuk tebal, italic, tipe garis bawah, kapitalisasi, striker, dan warna font.

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!"

Isi, Gradien, dan Efek Visual

Setiap bentuk memberikan sebuah FillFormat dapat diakses melalui: fill_format().Anda dapat mengatur isi padat, gradien mengisi, atau pola mengisi melalui set_fill_type() Metode. penutup gradien dikonfigurasi melalui GradientFormat objek, yang mendukung sudut linier, bentuk gradien, dan warna berhenti melalui 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);

Pengelolaan EffectFormat kelas (diakses melalui effect_format()) menambahkan efek cahaya, bayangan luar dan tepi lunak. Setiap efek diaktifkan dengan metode khusus (enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()) dan dikonfigurasi melalui objek yang dikembalikan.

Tabel-tabel

Tabel dibuat dengan add_table() Anda memberikan lebar kolom dan tinggi baris sebagai vektor. Table ekspos objek rows() dan (b) columns() koleksi, dan individu Cell objek mendukung konten teks melalui 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

Sifat dan Komentar Dokumen

Pengelolaan DocumentProperties class memungkinkan Anda mengatur metadata seperti judul, penulis, subjek, kata kunci, kategori, nomor revisi, dan tanda waktu. Akses melalui objek presentasi.

Komentar dikelola melalui: CommentAuthorCollection dan (b) CommentCollection.Anda menambahkan penulis dengan add_author(), lalu sertakan komentar pada slide tertentu di koordinat tertentu.

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

Memulai dengan cepat

Membangun dari Asal Mula

Perpustakaan membutuhkan CMake 3.20+ dan C++20-compilator. Klon repositori dan build:

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

Contoh minimal

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

Format yang Didhukung

Pengelolaan SaveFormat enum mendefinisikan semua target ekspor. Format berikut dikonfirmasi dalam kode sumber:

Format (Inggris)PerpanjanganBacalah.Menulis
PPTX.pptx (dalam bahasa Inggris)Ya, aku tahu.
PPT.pptDianjurkan
PPSX.ppsx (dalam bahasa Inggris)Dianjurkan
PPTM.pptmDianjurkan
PPSM.ppsmDianjurkan
POTX.potxDianjurkan
POTM.potmDianjurkan
POT.potDianjurkan
PPS.ppsDianjurkan
ODP.odpDianjurkan
OTP.otpDianjurkan
FODP.fodpDianjurkan
PDF.pdf (dalam bahasa Inggris)Dianjurkan
XPS.xpsDianjurkan
HTML.html (dalam bahasa Inggris)Dianjurkan
HTML5.html (dalam bahasa Inggris)Dianjurkan
TIFF. TiffDianjurkan
GIF.gif (berupa gambar)Dianjurkan
SWF.swfDianjurkan
MD.mdDianjurkan
XML.xmlDianjurkan

Catatan: Saat ini hanya PPTX ekspor yang diimplementasikan. Nilai format lain ada dalam SaveFormat ini untuk kompatibilitas ke depan tetapi belum berfungsi. save() metode selalu menghasilkan output PPTX terlepas dari parameter format.


Open Source & Lisensi

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.


Memulai

Siap mengintegrasikan Aspose.Slides FOSS ke dalam proyek C++ Anda? Berikut adalah sumber daya utama: