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

Aspose.Slides FOSS untuk C++

Buat, baca, dan sunting persembahan PowerPoint dari C++ — percuma dan sumber terbuka, tidak memerlukan kebergantungan Office.

Perpustakaan C++ Sumber Terbuka untuk Persembahan PowerPoint

Aspose.Slides FOSS untuk C++ ialah perpustakaan berlesen MIT untuk bekerja dengan fail .pptx PowerPoint. Integrasikan ia melalui CMake FetchContent dan mulakan serta-merta mencipta, membaca, dan menyunting persembahan tanpa memasang Microsoft Office atau mana-mana runtime proprietari.

Perpustakaan ini mendedahkan API Persembahan yang dibina di sekitar Presentation, Slide, ShapeCollection, TextFrame, Paragraph, dan Portion, model konseptual yang digunakan oleh PowerPoint itu sendiri. Tambah dan buang slaid, sisipkan AutoShapes, Tables, dan Connectors, formatkan teks pada peringkat aksara dengan tebal, condong, saiz fon dan warna, gunakan isian pepejal atau gradien, dan tambahkan kesan visual (bayang, cahaya, kabur, pantulan).

Semantik RAII memastikan pembersihan sumber yang boleh dipercayai: pemusnah Presentation melepaskan semua keadaan dalaman secara automatik. Bahagian XML yang tidak diketahui yang ditemui semasa pemuatan dipelihara secara verbatim semasa penyimpanan, jadi pusingan semula tidak pernah memusnahkan kandungan yang belum difahami oleh perpustakaan. Perpustakaan memerlukan pemalam yang mematuhi C++20. Untuk ciri tambahan, lihat Aspose.Slides for C++ enterprise edition.

API Persembahan dan Slaid

  • Cipta dan buka PPTX: Cipta persembahan baru atau buka fail .pptx sedia ada melalui Presentation() atau Presentation(path).
  • Tambah dan buang slaid: Urus secara programatik SlideCollection dengan add_empty_slide(), remove(), dan remove_at().
  • AutoShapes: Masukkan segi empat tepat, elips, garis, dan geometri ShapeType lain melalui add_auto_shape().
  • Jadual dan Penyambung: Tambah bentuk jadual berstruktur dan garis penyambung antara bentuk melalui add_connector().
  • Nota pembicara: Baca dan tulis nota pembicara per-slaid melalui NotesSlideManager.
  • Ulasan berutas: Akses utas ulasan dengan mengulangi pres.comment_authors() dan ulasan yang berkaitan.

Di mana Aspose.Slides FOSS boleh digunakan

  • Penjanaan laporan: Bina dek slaid berjenama daripada sumber data tanpa Office.
  • Automasi templat: Isi templat PPTX dengan kandungan dinamik dalam pipeline CI/CD.
  • Migrasi kandungan: Baca persembahan sedia ada dan susun semula atau ubah gaya slaid.
  • Sistem terbenam: Proses fail PPTX dalam persekitaran yang kritikal prestasi atau terhad sumber.
  • Pemprosesan kelompok: Terapkan perubahan pemformatan seragam merentasi perpustakaan dek slaid yang besar.

Pemformatan Teks dan Kesan Visual

  • Pemformatan peringkat aksara: Terapkan tebal, condong, saiz fon, dan warna kepada objek Portion individu melalui PortionFormat.
  • Isian pepejal dan gradien: Tetapkan isian bentuk kepada warna pepejal atau gradien linear berbilang henti menggunakan FillFormat dan FillType.
  • Kesan bayang dan cahaya: Gunakan bayang luar, cahaya, kabur, dan pantulan pada mana-mana bentuk melalui EffectFormat.
  • Penjajaran perenggan: Tetapkan penjajaran kiri, tengah, kanan, atau rapat per perenggan menggunakan ParagraphFormat dan set_alignment().
  • Round-trip safe: Bahagian XML yang tidak diketahui dipelihara secara verbatim semasa menyimpan semula.

Pengalaman Pembangun

Aspose.Slides FOSS mengintegrasikan melalui CMake FetchContent, jadi tidak perlu muat turun manual atau pemasangan pada seluruh sistem. Perpustakaan dibina dari sumber bersama projek anda.

API mencerminkan model objek PowerPoint sendiri (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), jadi sesiapa yang biasa dengan model objek PowerPoint boleh menggunakan perpustakaan ini serta-merta. Ia berlesen MIT, sumber terbuka di GitHub, dan memerlukan kompiler yang mematuhi C++20.

Buat Persembahan dan Tambah Bentuk

RAII memastikan pemusnah Presentation melepaskan semua sumber secara automatik apabila objek keluar dari skop. add_auto_shape() mengambil enum ShapeType, kemudian kedudukan x/y dan lebar/tinggi dalam titik — ciri text_frame bentuk menyediakan akses untuk menetapkan kandungan 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)
 

Formatkan Teks dan Terapkan Kesan Isi

Pemformatan teks berfungsi pada peringkat Portion — unit terkecil bagi satu rentetan aksara. Buka fail yang disimpan, navigasi ke bahagian pertama perenggan pertama, dan tetapkan sifat fon secara langsung. Isian bentuk adalah bebas: tetapkan jenis isian kepada pepejal dan berikan 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;
}
 

Soalan Lazim

Apakah Aspose.Slides FOSS untuk C++?

Ia adalah perpustakaan C++ percuma, berlesen MIT, untuk mencipta, membaca, dan menyunting persembahan PowerPoint .pptx tanpa memerlukan Microsoft Office.

Format fail mana yang disokong?

.pptx ialah format baca/tulis yang disokong. Mengeksport ke PDF, HTML, SVG, atau imej tidak tersedia dalam edisi ini.

Adakah ia memerlukan Microsoft Office atau PowerPoint?

Tidak. Aspose.Slides FOSS ialah perpustakaan C++ berdiri sendiri tanpa kebergantungan pada Microsoft Office, automasi COM, atau mana-mana runtime proprietari.

Bagaimana saya memasangnya?

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

Bolehkah saya menerapkan kesan visual seperti bayang dan cahaya?

Ya. Perpustakaan menyokong kesan bayang luar, cahaya, kabur, dan pantulan pada mana-mana objek bentuk melalui API EffectFormat.

Adakah perpustakaan ini menggunakan RAII untuk pengurusan sumber?

Ya. Penghancur Presentation melepaskan semua keadaan dalaman secara automatik, jadi tiada pembersihan eksplisit diperlukan.

Adakah melakukan round‑tripping pada PPTX akan memusnahkan kandungan yang tidak diketahui?

Tidak. Bahagian XML yang tidak diketahui yang ditemui semasa pemuatan dipelihara secara tepat pada penyimpanan, jadi kandungan yang belum difahami oleh perpustakaan tidak pernah hilang.

Di mana saya boleh mencari kod sumber?

Perpustakaan ini berlesen MIT dan dihoskan di GitHub. Laporan pepijat dan permintaan tarik dialu-alukan.

  

Sokongan dan Sumber Pembelajaran

 Bahasa Melayu