Operasi Presentasi Low-Code dalam C++

Gambaran Umum

Namespace Aspose::Slides::LowCode menyediakan kelas pembantu statis untuk operasi presentasi yang umum. Pembantu ini membungkus alur kerja model objek yang sering digunakan dalam metode yang terfokus, sehingga Anda dapat mengonversi atau menggabungkan file, memproses elemen presentasi, mengumpulkan bentuk, dan menghapus konten yang tidak terpakai dengan kode yang lebih sedikit.

Pembantu low-code paling berguna ketika operasi diterapkan pada seluruh file atau presentasi dan alur kerja default memenuhi kebutuhan Anda. Gunakan model objek lengkap Aspose.Slides ketika Anda memerlukan kontrol halus atas slide tunggal, master, tata letak, bentuk, pengaturan ekspor, atau hubungan antar elemen presentasi.

Tabel berikut merangkum pembantu yang tersedia:

Helper Gunakan untuk
Convert Mengonversi presentasi ke format lain dengan panggilan file-ke-file langsung.
Merger Menggabungkan file presentasi lengkap dengan format yang sama.
ForEach Menjalankan aksi untuk setiap slide, bentuk, paragraf, atau bagian teks.
Collect Mengambil bentuk dari seluruh presentasi untuk pemrosesan atau analisis berulang.
Compress Menghapus master dan tata letak yang tidak terpakai serta mengurangi data font yang disematkan.

Mengonversi Presentasi

Gunakan Convert::AutoByExtension ketika ekstensi file keluaran cukup untuk memilih format ekspor. Metode ini membuka presentasi sumber, menentukan format yang diperlukan dari jalur keluaran, dan menulis hasilnya.

#include <LowCode/Convert.h>

using namespace Aspose::Slides::LowCode;

Convert::AutoByExtension(u"input.pptx", u"output.pdf");

Kelas Convert juga menyediakan metode khusus untuk output PDF, SVG, JPEG, PNG, dan TIFF. Gunakan model objek lengkap ketika Anda perlu memeriksa atau mengubah presentasi sebelum mengekspor atau mengonfigurasi opsi ekspor yang tidak disediakan oleh pembantu yang dipilih. Lihat Convert Presentation untuk alur kerja dan opsi khusus format.

Menggabungkan Presentasi

Gunakan Merger::Process untuk menggabungkan file presentasi lengkap dengan satu panggilan. Presentasi masukan harus memiliki format file yang sama.

#include <LowCode/Merger.h>
#include <system/array.h>
#include <system/string.h>

using namespace Aspose::Slides::LowCode;

auto inputFiles = System::MakeArray<System::String>({u"part-1.pptx", u"part-2.pptx"});
Merger::Process(inputFiles, u"merged.pptx");

Pembantu ini cocok ketika semua slide harus ditambahkan ke satu hasil tanpa memilih atau memetakan mereka secara individual. Gunakan model objek lengkap ketika Anda perlu menggabungkan slide terpilih, menerapkan master atau tata letak tujuan, mempertahankan bagian secara eksplisit, atau menyesuaikan ukuran slide yang berbeda. Lihat Merge Presentations untuk skenario tersebut.

Iterasi Elemen Presentasi

Kelas ForEach memanggil callback untuk setiap jenis elemen presentasi yang diminta. Ini menghindari loop koleksi bersarang dan nyaman untuk inspeksi atau perubahan format pada seluruh presentasi.

Contoh berikut menggunakan ForEach::Slide, ForEach::Shape, ForEach::Paragraph, dan ForEach::Portion untuk memeriksa elemen yang bersesuaian:

#include <DOM/BaseSlide.h>
#include <DOM/Paragraph.h>
#include <DOM/Portion.h>
#include <DOM/Presentation.h>
#include <DOM/Shape.h>
#include <DOM/Slide.h>
#include <LowCode/ForEach.h>
#include <system/console.h>
#include <system/shared_ptr.h>
#include <functional>

using namespace Aspose::Slides;
using namespace Aspose::Slides::LowCode;

auto presentation = System::MakeObject<Presentation>(u"input.pptx");

auto slideCallback = std::function<void(System::SharedPtr<Slide>, int32_t)>([](System::SharedPtr<Slide> slide, int32_t index)
{
    System::Console::WriteLine(u"Slide {0}: {1} shapes", index, slide->get_Shapes()->get_Count());
});
ForEach::Slide(presentation, slideCallback);

auto shapeCallback = std::function<void(System::SharedPtr<Shape>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Shape> shape, System::SharedPtr<BaseSlide> slide, int32_t index)
{
    System::Console::WriteLine(u"Shape {0}: {1}", index, shape->get_Name());
});
ForEach::Shape(presentation, shapeCallback);

auto paragraphCallback = std::function<void(System::SharedPtr<Paragraph>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Paragraph> paragraph, System::SharedPtr<BaseSlide> slide, int32_t index)
{
    System::Console::WriteLine(u"Paragraph {0}: {1}", index, paragraph->get_Text());
});
ForEach::Paragraph(presentation, paragraphCallback);

auto portionCallback = std::function<void(System::SharedPtr<Portion>, System::SharedPtr<Paragraph>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Portion> portion, System::SharedPtr<Paragraph> paragraph, System::SharedPtr<BaseSlide> slide, int32_t index)
{
    System::Console::WriteLine(u"Portion {0}: {1}", index, portion->get_Text());
});
ForEach::Portion(presentation, portionCallback);

Secara default, penelusuran bentuk dan teks pada seluruh presentasi mencakup slide normal, master, dan tata letak. Overload dengan parameter includeNotes juga dapat memproses slide catatan. Gunakan loop koleksi langsung ketika urutan penelusuran, penghentian awal, penyaringan sebelum pemanggilan callback, atau kontrol induk-anak yang detail penting.

Kumpulkan Bentuk

Gunakan Collect::Shapes ketika Anda memerlukan koleksi semua bentuk dalam presentasi alih-alih callback untuk tiap bentuk. Ini berguna ketika kumpulan yang sama akan disaring, dihitung, atau diproses lebih dari satu kali.

#include <DOM/Presentation.h>
#include <DOM/Shape.h>
#include <LowCode/Collect.h>
#include <system/console.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::LowCode;

auto presentation = System::MakeObject<Presentation>(u"input.pptx");
auto shapes = Collect::Shapes(presentation);

for (const auto& shape : shapes)
{
    System::Console::WriteLine(shape->get_Name());
}

Gunakan ForEach::Shape sebagai gantinya ketika setiap bentuk dapat ditangani segera dan Anda tidak perlu menyimpan hasil kumpulan.

Kompres Konten Presentasi

Kelas Compress dapat menghapus elemen struktural yang tidak terpakai dan mengurangi data font yang disematkan:

#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <LowCode/Compress.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace Aspose::Slides::LowCode;

auto presentation = System::MakeObject<Presentation>(u"input.pptx");

Compress::RemoveUnusedLayoutSlides(presentation);
Compress::RemoveUnusedMasterSlides(presentation);
Compress::CompressEmbeddedFonts(presentation);

presentation->Save(u"compressed.pptx", SaveFormat::Pptx);

Hapus tata letak yang tidak terpakai sebelum master yang tidak terpakai sehingga master yang menjadi tak terreferensi setelah pembersihan tata letak juga dapat dihapus. Simpan presentasi yang dioptimalkan ke file baru jika Anda mungkin memerlukan master, tata letak, atau data font yang disematkan lengkap di kemudian hari. Untuk detail lebih lanjut, lihat Slide Master dan Embedded Font.

FAQ

Kapan saya harus menggunakan API low-code alih-alih model objek lengkap?

Gunakan pembantu low-code ketika operasi standar diterapkan pada file atau presentasi lengkap dan tidak memerlukan kontrol detail atas elemen individual. Gunakan model objek lengkap ketika Anda perlu memilih slide tertentu, mengontrol hubungan master dan tata letak, memeriksa keadaan menengah, atau mengonfigurasi perilaku yang tidak disediakan pembantu.

Apakah Merger dapat menggabungkan presentasi dengan format file yang berbeda?

Tidak. Merger::Process memerlukan presentasi masukan dengan format yang sama. Konversi file masukan ke format umum terlebih dahulu, misalnya dengan Convert::AutoByExtension, lalu gabungkan file yang telah dikonversi.

Apakah ForEach memproses slide master, tata letak, dan catatan?

ForEach::Slide mengiterasi slide presentasi normal. ForEach::Shape, ForEach::Paragraph, dan ForEach::Portion pada seluruh presentasi mencakup slide normal, master, dan tata letak secara default. Gunakan overload mereka dengan includeNotes diatur ke true untuk menyertakan slide catatan.

Apa perbedaan antara ForEach::Shape dan Collect::Shapes?

Gunakan ForEach::Shape untuk memproses setiap bentuk segera melalui callback. Gunakan Collect::Shapes ketika Anda memerlukan hasil enumerable yang dapat disimpan, disaring, dihitung, atau ditelusuri berkali-kali.

Apakah Compress selalu membuat file presentasi lebih kecil?

Tidak selalu. Hasilnya tergantung pada apakah presentasi berisi tata letak yang tidak terpakai, master yang tidak terpakai, atau font yang disematkan dengan karakter yang tidak terpakai. Jika tidak ada hal tersebut, operasi Compress yang bersangkutan mungkin tidak mengurangi ukuran file.

Apakah perubahan yang dilakukan oleh ForEach atau Compress disimpan secara otomatis?

Tidak. Pembantu ini beroperasi pada objek Presentation yang dimuat di memori. Setelah mengubah elemen dalam callback ForEach atau menjalankan Compress, panggil Presentation::Save untuk menulis hasilnya.

Artikel Terkait