Pengenalan

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx fail dalam C++ asli, tanpa kebergantungan pada Microsoft Office atau mana-mana runtime proprietari.

Perpustakaan ini direka untuk pembangun yang perlu menjana atau memanipulasi fail persembahan secara programatik: mengautomasi dek slaid daripada data, mengekstrak teks dan metadata daripada fail PPTX yang dimuat naik, membina paip laporan berasaskan persembahan, atau menyematkan penciptaan persembahan ke dalam aplikasi desktop dan pelayan. Kerana aspose_slides_foss dibina dengan CMake, ia mengkompil dan menyebarkan pada Windows, macOS, dan Linux.

Ciri-ciri Utama

  • Sokongan PPTX pusingan penuh: Buka mana-mana .pptx fail, ubah kandungannya, dan simpan semula tanpa kehilangan bahagian XML yang tidak diketahui yang belum difahami oleh perpustakaan.
  • Pengurusan slaid: Tambah, buang, dan ulang slaid menggunakan prs.slides(); persembahan bermula dengan satu slaid kosong selepas membina sebuah Presentation.
  • AutoShapes, Jadual, dan Penyambung: Sisipkan bentuk melalui slide.shapes().add_auto_shape(), data tabular melalui slide.shapes().add_table(), dan penyambung visual antara bentuk melalui slide.shapes().add_connector().
  • Pemformatan teks kaya: Format teks pada peringkat aksara dengan PortionFormat: saiz fon, tebal, condong, garis bawah, dan warna ARGB melalui FillType::SOLID dan ColorFormat.
  • Jenis isian: Terapkan FillType::SOLID, Gradient, Pattern, atau Picture mengisi ke sebarang bentuk.
  • Kesan visual: Bayang luar, cahaya, tepi lembut, kabur, pantulan, dan bayang dalam melalui shape.effect_format().
  • 3D formatting: Bevel, kamera, rig cahaya, bahan, dan kedalaman ekstrusi melalui shape.three_d_format().
  • Nota pembicara: Lampirkan teks nota ke setiap slaid melalui notes_slide_manager().add_notes_slide().
  • Komen berutas: Tambah komen dengan metadata pengarang dan kedudukan slaid.
  • Imej terbenam: Benamkan dari laluan fail, penampan memori, atau aliran.
  • Sifat dokumen: Baca dan tulis sifat teras, aplikasi, dan khusus.

Mula Menggunakan

Tambah pustaka melalui CMake. Kompilator C++17 diperlukan.

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)
target_link_libraries(your_target PRIVATE aspose_slides_foss)

Cipta persembahan pertama anda dengan satu bentuk dan simpan ia:

#include <Aspose/Slides/Foss/presentation.h>

int main() {
    using namespace Aspose::Slides::Foss;

    Presentation prs;
    auto& slide = prs.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 400, 120
    );
    shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
    prs.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

The Presentation destructor melepaskan semua sumber dalaman secara automatik apabila ia keluar dari skop.

Contoh Pemformatan Teks

#include <Aspose/Slides/Foss/presentation.h>

using namespace Aspose::Slides::Foss;

Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);

Keterbatasan Semasa

Kawasan berikut membuang pengecualian dalam keluaran ini:

  • Carta, SmartArt, dan objek OLE
  • Animasi dan peralihan slaid
  • Eksport ke PDF, HTML, SVG, atau format imej
  • Pautan hiper, tetapan tindakan, makro VBA, dan tandatangan digital

Bahagian XML yang tidak diketahui yang ditemui semasa pemuatan dipelihara secara verbatim semasa penyimpanan, jadi fail PPTX yang dihasilkan oleh alat lain dapat melakukan pusingan balik dengan selamat.

juga