Pertanyaan yang Sering Diajukan

Pertanyaan yang Sering Diajukan

Pertanyaan yang Sering Diajukan

Bagaimana cara membangun dan menautkan Aspose.Slides FOSS untuk C++?

Gunakan CMake FetchContent untuk menambahkan perpustakaan ke proyek Anda. C++20 atau yang lebih baru diperlukan.

cmake_minimum_required(VERSION 3.20)
project(my_app LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

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)

add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE aspose_slides_foss)

Tidak diperlukan Microsoft Office atau runtime sistem lainnya.


Mengapa saya harus menggunakan RAII dengan Presentation?

Kelas Presentation mengelola sumber daya XML internal. Ketika objek keluar dari ruang lingkup, destruktor‑nya melepaskan sumber daya tersebut. Hindari mengalokasikan Presentation dengan new tanpa pointer pintar; gunakan alokasi stack atau std::unique_ptr untuk memastikan pembersihan.

Selalu ikuti pola ini:

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

int main() {
    Aspose::Slides::Foss::Presentation prs;
    // work here
    prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
    return 0;
}

Format file apa yang dapat saya simpan?

Hanya PPTX yang didukung:

prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);

Ekspor ke PDF, HTML, SVG, atau format gambar (PNG, JPEG) tidak tersedia dalam edisi ini.


Bisakah saya membuka .ppt (PowerPoint lama 97-2003)?

Tidak. Hanya file .pptx (Office Open XML) yang didukung. Format biner warisan .ppt tidak ditangani oleh pustaka ini.


Bagaimana cara saya mengakses slide?

Slide adalah koleksi berbasis nol yang dapat diakses melalui prs.slides():

auto& slides = prs.slides();
auto& first_slide = slides[0];
auto count = slides.size();

Bagaimana cara menambahkan slide kedua?

Gunakan prs.slides().add_empty_slide() dengan tata letak:

Aspose::Slides::Foss::Presentation prs;
auto& layout = prs.layout_slides()[0];
prs.slides().add_empty_slide(&layout);
auto& slide2 = prs.slides()[1];
prs.save("two-slides.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);

Bagaimana cara mengatur warna latar belakang slide?

Warna latar belakang slide tidak tersedia dalam API saat ini. BaseSlide dan Slide tidak memiliki metode background(). Fitur ini tidak tersedia dalam edisi perpustakaan ini.


Bagaimana cara saya menggunakan NullableBool?

NullableBool adalah enum tiga status yang digunakan untuk properti pemformatan. Gunakan NullableBool::TRUE (bukan C++ true) untuk tebal, miring, dan properti serupa:

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

fmt.set_font_bold(Aspose::Slides::Foss::NullableBool::TRUE);
fmt.set_font_italic(Aspose::Slides::Foss::NullableBool::FALSE);
// Note: set_font_underline() takes TextUnderlineType, not NullableBool:
// fmt.set_font_underline(Aspose::Slides::Foss::TextUnderlineType::NONE);

Mengapa mengatur warna teks tidak berpengaruh?

Anda juga harus mengatur fill_type ke SOLID sebelum menetapkan warna:

fmt.fill_format().set_fill_type(Aspose::Slides::Foss::FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(
    Aspose::Slides::Foss::Color::from_argb(255, 200, 0, 0));

Apakah saya dapat menggunakan grafik atau SmartArt?

Tidak. Diagram, SmartArt, objek OLE, animasi, transisi, hyperlink, makro VBA, dan tanda tangan digital tidak diimplementasikan dalam edisi ini.


Apakah perpustakaan ini thread-safe?

Setiap objek Presentation bersifat independen. Membuat dan menggunakan instance Presentation terpisah dari thread yang berbeda aman selama Anda tidak membagikan satu objek Presentation lintas thread tanpa penguncian eksternal.


Bagaimana cara saya menyematkan gambar?

Baca byte gambar dan tambahkan ke prs.images(), kemudian buat PictureFrame:

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

std::ifstream file("logo.png", std::ios::binary);
std::vector<uint8_t> data((std::istreambuf_iterator<char>(file)),
                           std::istreambuf_iterator<char>());
auto& image = prs.images().add_image(data);
slide.shapes().add_picture_frame(
    Aspose::Slides::Foss::ShapeType::RECTANGLE, 50, 50, 200, 150, image);

Lihat Juga

 Bahasa Indonesia