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) | Perpanjangan | Bacalah. | Menulis |
|---|---|---|---|
| PPTX | .pptx (dalam bahasa Inggris) | – | Ya, aku tahu. |
| PPT | .ppt | – | Dianjurkan |
| PPSX | .ppsx (dalam bahasa Inggris) | – | Dianjurkan |
| PPTM | .pptm | – | Dianjurkan |
| PPSM | .ppsm | – | Dianjurkan |
| POTX | .potx | – | Dianjurkan |
| POTM | .potm | – | Dianjurkan |
| POT | .pot | – | Dianjurkan |
| PPS | .pps | – | Dianjurkan |
| ODP | .odp | – | Dianjurkan |
| OTP | .otp | – | Dianjurkan |
| FODP | .fodp | – | Dianjurkan |
| .pdf (dalam bahasa Inggris) | – | Dianjurkan | |
| XPS | .xps | – | Dianjurkan |
| HTML | .html (dalam bahasa Inggris) | – | Dianjurkan |
| HTML5 | .html (dalam bahasa Inggris) | – | Dianjurkan |
| TIFF | . Tiff | – | Dianjurkan |
| GIF | .gif (berupa gambar) | – | Dianjurkan |
| SWF | .swf | – | Dianjurkan |
| MD | .md | – | Dianjurkan |
| XML | .xml | – | Dianjurkan |
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:
- Dokumentasi: https://docs.aspose.org/slides/cpp/ untuk panduan pengembang, tutorial dan gambaran konseptual.
- Basis Pengetahuan: https://kb.aspose.org/slides/cpp/ untuk FAQ dan artikel panduan yang mencakup tugas umum.
- Referensi API: https://reference.aspose.org/slides/cpp/ untuk dokumentasi kelas demi kelas dari API publik penuh.