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

Aspose.Slides FOSS for C++

Crie, leia e edite apresentações PowerPoint a partir de C++ — gratuito e de código aberto, sem dependência do Office.

Biblioteca C++ de código aberto para apresentações PowerPoint

Aspose.Slides FOSS para C++ é uma biblioteca licenciada sob MIT para trabalhar com arquivos PowerPoint .pptx. Integre-a via CMake FetchContent e comece imediatamente a criar, ler e editar apresentações sem instalar o Microsoft Office ou qualquer runtime proprietário.

A biblioteca expõe uma API de Presentation construída em torno de Presentation, Slide, ShapeCollection, TextFrame, Paragraph e Portion, o modelo conceitual usado pelo próprio PowerPoint. Adicione e remova slides, insira AutoShapes, Tables e Connectors, formate texto ao nível de caractere com negrito, itálico, tamanho e cor da fonte, aplique preenchimentos sólidos ou em gradiente e adicione efeitos visuais (sombra, brilho, desfoque, reflexão).

A semântica RAII garante a limpeza confiável de recursos: o destrutor Presentation libera todo o estado interno automaticamente. Partes XML desconhecidas encontradas durante o carregamento são preservadas literalmente ao salvar, de modo que o round‑tripping nunca destrói conteúdo que a biblioteca ainda não entende. A biblioteca requer um compilador compatível com C++17.

API de apresentação e slide

  • Create and open PPTX: Crie novas apresentações ou abra arquivos .pptx existentes via Presentation() ou Presentation(path).
  • Add and remove slides: Gerencie programaticamente a SlideCollection com add_clone(), remove() e remove_at().
  • AutoShapes: Insira retângulos, elipses, linhas e outras geometrias ShapeType via add_auto_shape().
  • Tables and Connectors: Adicione formas de tabela estruturadas e linhas de conexão entre formas via add_connector().
  • Speaker notes: Leia e escreva notas de apresentador por slide através de NotesSlideManager.
  • Comentários em thread: Acesse os threads de comentários ao nível do slide com get_slide_comments().

Onde Aspose.Slides FOSS pode ser usado

  • Geração de relatórios: Crie decks de slides com marca a partir de fontes de dados sem o Office.
  • Automação de templates: Preencha templates PPTX com conteúdo dinâmico em pipelines CI/CD.
  • Migração de conteúdo: Leia apresentações existentes e reestruture ou reformate os slides.
  • Sistemas embarcados: Processar arquivos PPTX em ambientes críticos de desempenho ou com recursos limitados.
  • Processamento em lote: Aplicar alterações de formatação uniformes em grandes bibliotecas de decks de slides.

Formatação de texto e efeitos visuais

  • Formatação a nível de caractere: Aplique negrito, itálico, tamanho de fonte e cor a objetos Portion individuais via PortionFormat.
  • Preenchimentos sólido e gradiente: Defina o preenchimento da forma como uma cor sólida ou gradiente linear de múltiplas paradas usando FillFormat e FillType.
  • Efeitos de sombra e brilho: Aplique sombra externa, brilho, desfoque e reflexão a qualquer forma via EffectFormat.
  • Alinhamento de parágrafo: Defina alinhamento à esquerda, centralizado, à direita ou justificado por parágrafo usando ParagraphFormat e set_alignment().
  • Segurança em ida e volta: Partes XML desconhecidas são preservadas literalmente ao salvar novamente.

Experiência do desenvolvedor

Aspose.Slides FOSS integra-se via CMake FetchContent, portanto não é necessário download manual ou instalação em todo o sistema. A biblioteca é compilada a partir do código-fonte junto ao seu projeto.

A API espelha o próprio modelo de objetos do PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), portanto quem estiver familiarizado com o modelo de objetos do PowerPoint pode usar a biblioteca imediatamente. Ela tem licença MIT, é de código aberto no GitHub e requer um compilador compatível com C++17.

Criar uma Apresentação e Adicionar uma Forma

RAII garante que o destrutor de Presentation libere todos os recursos automaticamente quando o objeto sai do escopo. add_auto_shape() recebe um enum ShapeType, depois a posição x/y e a largura/altura em pontos — o text_frame da forma fornece acesso para definir o conteúdo do texto.

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

    // Adicionar um AutoShape retângulo
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("Olá, Aspose.Slides!");

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

Formatar Texto e Aplicar um Efeito de Preenchimento

A formatação de texto funciona no nível Portion — a menor unidade de uma sequência de caracteres. Abra o arquivo salvo, navegue até a primeira porção do primeiro parágrafo e defina as propriedades da fonte diretamente. O preenchimento da forma é independente: defina o tipo de preenchimento como sólido e atribua uma cor.

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

    // Texto em negrito, 18pt
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Preenchimento de fundo sólido na forma
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}

Perguntas Frequentes

O que é Aspose.Slides FOSS para C++?

É uma biblioteca C++ gratuita, licenciada sob MIT, para criar, ler e editar apresentações PowerPoint .pptx sem exigir Microsoft Office.

Quais formatos de arquivo são suportados?

PPTX é o formato de leitura/gravação suportado. Exportar para PDF, HTML, SVG ou imagens não está disponível nesta edição.

Ele requer Microsoft Office ou PowerPoint?

Não. Aspose.Slides FOSS é uma biblioteca C++ independente, sem dependência do Microsoft Office, automação COM ou qualquer runtime proprietário.

Como faço para instalá-lo?

Use CMake FetchContent para integrar a biblioteca diretamente do GitHub. A biblioteca requer um compilador compatível com C++17.

Posso aplicar efeitos visuais como sombra e brilho?

Sim. A biblioteca suporta efeitos de sombra externa, brilho, desfoque e reflexão em qualquer objeto de forma via a API EffectFormat.

A biblioteca usa RAII para gerenciamento de recursos?

Sim. O destrutor Presentation libera todo o estado interno automaticamente, portanto não é necessário limpeza explícita.

O round-tripping de um PPTX destruirá conteúdo desconhecido?

Não. Partes XML desconhecidas encontradas durante o carregamento são preservadas literalmente ao salvar, de modo que o conteúdo que a biblioteca ainda não entende nunca é perdido.

Onde posso encontrar o código-fonte?

A biblioteca tem licença MIT e está hospedada no GitHub. Relatórios de bugs e pull requests são bem-vindos.

  

Recursos de Suporte e Aprendizado

 Português