1. Produk
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS untuk C++

Buat, baca, dan edit presentasi PowerPoint dari C++ — gratis dan sumber terbuka, tidak memerlukan ketergantungan Office.

Perpustakaan C++ Sumber Terbuka untuk Presentasi PowerPoint

Aspose.Slides FOSS untuk C++ adalah perpustakaan berlisensi MIT untuk bekerja dengan file PowerPoint .pptx. Integrasikan melalui CMake FetchContent dan segera mulai membuat, membaca, dan mengedit presentasi tanpa menginstal Microsoft Office atau runtime proprietari apa pun.

Perpustakaan ini menyediakan API Presentasi yang dibangun di sekitar Presentation, Slide, ShapeCollection, TextFrame, Paragraph, dan Portion, model konseptual yang digunakan oleh PowerPoint itu sendiri. Tambahkan dan hapus slide, sisipkan AutoShapes, Tables, dan Connectors, format teks pada tingkat karakter dengan bold, italic, ukuran font dan warna, terapkan isian solid atau gradient, dan tambahkan efek visual (shadow, glow, blur, reflection).

Semantik RAII memastikan pembersihan sumber daya yang dapat diandalkan: destruktor Presentation melepaskan semua status internal secara otomatis. Bagian XML yang tidak dikenal yang ditemui selama pemuatan dipertahankan secara verbatim saat disimpan, sehingga proses round-tripping tidak pernah menghancurkan konten yang belum dipahami oleh perpustakaan. Perpustakaan memerlukan kompiler yang mematuhi C++20. Untuk fitur tambahan, lihat Aspose.Slides for C++ enterprise edition.

API Presentasi dan Slide

  • Buat dan buka PPTX: Buat presentasi baru atau buka file .pptx yang ada melalui Presentation() atau Presentation(path).
  • Tambah dan hapus slide: Kelola SlideCollection secara programatis dengan add_empty_slide(), remove(), dan remove_at().
  • AutoShapes: Masukkan persegi panjang, elips, garis, dan geometri ShapeType lainnya melalui add_auto_shape().
  • Tabel dan Penghubung: Tambahkan bentuk tabel terstruktur dan garis penghubung antara bentuk melalui add_connector().
  • Catatan pembicara: Baca dan tulis catatan pembicara per‑slide melalui NotesSlideManager.
  • Threaded comments: Akses thread komentar dengan mengiterasi pres.comment_authors() dan komentar yang terkait.

Di mana Aspose.Slides FOSS dapat digunakan

  • Pembuatan laporan: Buat deck slide bermerek dari sumber data tanpa Office.
  • Otomatisasi templat: Isi templat PPTX dengan konten dinamis dalam pipeline CI/CD.
  • Migrasi konten: Baca presentasi yang ada dan susun ulang atau ubah gaya slide.
  • Sistem tertanam: Proses file PPTX dalam lingkungan yang kritis terhadap kinerja atau terbatas sumber dayanya.
  • Pemrosesan batch: Terapkan perubahan format seragam pada perpustakaan deck slide yang besar.

Pemformatan Teks dan Efek Visual

  • Pemformatan tingkat karakter: Terapkan tebal, miring, ukuran font, dan warna ke objek Portion individual melalui PortionFormat.
  • Isian padat dan gradasi: Atur isian bentuk menjadi warna padat atau gradien linear multi‑stop menggunakan FillFormat dan FillType.
  • Efek bayangan dan cahaya: Terapkan bayangan luar, cahaya, blur, dan refleksi pada bentuk apa pun melalui EffectFormat.
  • Penjajaran paragraf: Atur kiri, tengah, kanan, atau rata kanan‑kiri per paragraf menggunakan ParagraphFormat dan set_alignment().
  • Aman untuk perjalanan bolak-balik: Bagian XML yang tidak diketahui dipertahankan secara verbatim saat disimpan kembali.

Pengalaman Pengembang

Aspose.Slides FOSS terintegrasi melalui CMake FetchContent, sehingga tidak perlu mengunduh secara manual atau instalasi di seluruh sistem. Perpustakaan dibangun dari sumber bersama proyek Anda.

API mencerminkan model objek PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), sehingga siapa pun yang familiar dengan model objek PowerPoint dapat langsung menggunakan perpustakaan ini. Ini berlisensi MIT, open-source di GitHub, dan memerlukan C++20-compliant compiler.

Buat Presentasi dan Tambahkan Bentuk

RAII memastikan destruktor Presentation melepaskan semua sumber daya secara otomatis ketika objek keluar dari ruang lingkup. add_auto_shape() mengambil enum ShapeType, kemudian posisi x/y dan lebar/tinggi dalam poin — shape’s text_frame menyediakan akses untuk mengatur konten teks.

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)
 

Format Teks dan Terapkan Efek Isi

Pemformatan teks bekerja pada tingkat Portion — unit terkecil dari rangkaian karakter. Buka file yang disimpan, navigasikan ke bagian pertama dari paragraf pertama, dan atur properti font secara langsung. Isi bentuk bersifat independen: atur tipe isi menjadi solid dan tetapkan warna.

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

Pertanyaan yang Sering Diajukan

Apa itu Aspose.Slides FOSS untuk C++?

Ini adalah perpustakaan C++ gratis dengan lisensi MIT untuk membuat, membaca, dan mengedit presentasi PowerPoint .pptx tanpa memerlukan Microsoft Office.

Format file apa yang didukung?

.pptx adalah format baca/tulis yang didukung. Ekspor ke PDF, HTML, SVG, atau gambar tidak tersedia dalam edisi ini.

Apakah itu memerlukan Microsoft Office atau PowerPoint?

Tidak. Aspose.Slides FOSS adalah perpustakaan C++ mandiri yang tidak bergantung pada Microsoft Office, otomatisasi COM, atau runtime proprietari apa pun.

Bagaimana cara menginstalnya?

Gunakan CMake FetchContent untuk mengintegrasikan perpustakaan langsung dari GitHub. Perpustakaan ini memerlukan kompiler yang mematuhi C++20.

Bisakah saya menerapkan efek visual seperti bayangan dan cahaya?

Ya. Perpustakaan ini mendukung efek bayangan luar, cahaya, blur, dan refleksi pada objek bentuk apa pun melalui API EffectFormat.

Apakah perpustakaan ini menggunakan RAII untuk manajemen sumber daya?

Ya. Destructor Presentation melepaskan semua status internal secara otomatis, sehingga tidak diperlukan pembersihan eksplisit.

Apakah melakukan round-tripping pada PPTX akan menghancurkan konten yang tidak diketahui?

Tidak. Bagian XML yang tidak dikenal yang ditemui selama pemuatan dipertahankan persis saat disimpan, sehingga konten yang belum dipahami perpustakaan tidak pernah hilang.

Di mana saya dapat menemukan kode sumber?

Perpustakaan ini berlisensi MIT dan dihosting di GitHub. Laporan bug dan pull request dipersilakan.

  

Sumber Daya Dukungan dan Pembelajaran

 Bahasa Indonesia