Perguntas Frequentes

Perguntas Frequentes

Perguntas Frequentes

Como eu construo e vinculo o Aspose.Slides FOSS para C++?

Use o CMake FetchContent para adicionar a biblioteca ao seu projeto. C++20 ou posterior é necessário.

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)

Nenhum Microsoft Office ou outro runtime de sistema é necessário.


Por que devo usar RAII com Presentation?

A classe Presentation gerencia recursos XML internos. Quando o objeto sai do escopo, seu destrutor libera esses recursos. Evite alocar um Presentation com new sem um ponteiro inteligente; use alocação na pilha ou std::unique_ptr para garantir a limpeza.

Sempre siga este padrão:

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

Em quais formatos de arquivo posso salvar?

Apenas PPTX é suportado:

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

Exportar para PDF, HTML, SVG ou formatos de imagem (PNG, JPEG) não está disponível nesta edição.


Posso abrir .ppt (arquivos antigos do PowerPoint 97-2003)?

Não. Apenas arquivos .pptx (Office Open XML) são suportados. O formato binário legado .ppt não é tratado por esta biblioteca.


Como acesso os slides?

Slides são uma coleção indexada a partir de zero acessível via prs.slides():

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

Como adiciono um segundo slide?

Use prs.slides().add_empty_slide() com um layout:

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);

Como defino a cor de fundo do slide?

A cor de fundo do slide não está exposta na API atual. BaseSlide e Slide não possuem um método background(). Esse recurso não está disponível nesta edição da biblioteca.


Como eu uso NullableBool?

NullableBool é um enum de três estados usado para propriedades de formatação. Use NullableBool::TRUE (não C++ true) para negrito, itálico e propriedades semelhantes:

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

Por que definir a cor do texto não tem efeito?

Você também deve definir fill_type para SOLID antes de atribuir a cor:

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));

Posso usar gráficos ou SmartArt?

Não. Gráficos, SmartArt, objetos OLE, animações, transições, hyperlinks, macros VBA e assinaturas digitais não são implementados nesta edição.


Esta biblioteca é thread‑safe?

Cada objeto Presentation é independente. Criar e usar instâncias separadas de Presentation a partir de threads distintas é seguro, desde que você não compartilhe um único objeto Presentation entre threads sem bloqueio externo.


Como incorporo uma imagem?

Leia os bytes da imagem e adicione‑os a prs.images(), então crie um 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);

Veja Também

 Português