はじめに

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx ネイティブC++でのファイルで、Microsoft Officeや任意のプロプライエタリランタイムへの依存はありません。.

このライブラリは、プログラムでプレゼンテーションファイルを生成または操作する必要がある開発者向けに設計されています:データからスライドデッキを自動化したり、アップロードされたPPTXファイルからテキストやメタデータを抽出したり、プレゼンテーションベースのレポートパイプラインを構築したり、デスクトップやサーバーアプリケーションにプレゼンテーション作成機能を組み込んだりするためです。Because aspose_slides_foss CMakeで構築されており、Windows、macOS、Linuxでコンパイルおよびデプロイできます。.

主な機能

  • 完全なラウンドトリップPPTXサポート:: 任意の .pptx ファイルを開き、内容を変更し、ライブラリがまだ理解していない未知のXMLパーツを失うことなく元に戻して保存します。.
  • スライド管理:: スライドを追加、削除、反復処理するには prs.slides();; プレゼンテーションは、構築後に1枚の空白スライドから始まります Presentation.
  • AutoShapes、テーブル、コネクタ:: 形状を挿入するには slide.shapes().add_auto_shape(), 表形式データを使用して slide.shapes().add_table(), シェイプ間のビジュアルコネクタを使用して slide.shapes().add_connector().
  • リッチテキストの書式設定: 文字レベルでテキストをフォーマットするには PortionFormat: フォントサイズ、太字、斜体、下線、そして ARGB カラーを使用して FillType::SOLIDColorFormat.
  • 塗りつぶしタイプ: 適用 FillType::SOLID, Gradient, Pattern,、または Picture 塗りつぶしを任意のシェイプに適用します。.
  • ビジュアルエフェクト: 外側の影、グロー、ソフトエッジ、ぼかし、反射、内部影を使用して shape.effect_format().
  • 3D formatting: ベベル、カメラ、ライトリグ、マテリアル、押し出し深さを使用して shape.three_d_format().
  • スピーカーノート: 各スライドにノートテキストを添付するには notes_slide_manager().add_notes_slide().
  • スレッド化されたコメント: 作者メタデータとスライド位置を含むコメントを追加します。.
  • 埋め込み画像: ファイルパス、メモリバッファ、またはストリームから埋め込みます。.
  • 文書プロパティ: コア、アプリ、カスタムプロパティを読み書きします。.

はじめに

CMake でライブラリを追加します。C++17 コンパイラが必要です。.

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)

シェイプを使って最初のプレゼンテーションを作成し、保存します:

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

その Presentation destructor はスコープを抜けると自動的にすべての内部リソースを解放します。.

テキスト書式設定の例

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

現在の制限事項

このリリースでは、以下の領域で例外がスローされます:

  • チャート、SmartArt、OLE オブジェクト
  • アニメーションとスライド遷移
  • PDF、HTML、SVG、または画像形式へエクスポート
  • ハイパーリンク、アクション設定、VBA マクロ、デジタル署名

ロード時に遭遇した不明な XML パーツは、保存時にそのまま保持されるため、他のツールで生成された PPTX ファイルも安全に往復できます。.

参照