1. 製品
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS for C++

C++ から PowerPoint プレゼンテーションを作成、読み取り、編集できます — 無料かつオープンソースで、Office への依存は不要です。

PowerPoint プレゼンテーション用オープンソース C++ ライブラリ

Aspose.Slides FOSS for C++ は、PowerPoint .pptx ファイルを扱うための MIT ライセンスのライブラリです。CMake FetchContent で統合すれば、Microsoft Office や任意のプロプライエタリランタイムをインストールせずに、すぐにプレゼンテーションの作成、読み取り、編集を開始できます。

このライブラリは、PowerPoint が内部で使用している概念モデルである PresentationSlideShapeCollectionTextFrameParagraphPortion を中心とした Presentation API を提供します。スライドの追加・削除、AutoShape、テーブル、コネクタの挿入、文字レベルでの太字・斜体・フォントサイズ・色によるテキスト書式設定、単色またはグラデーションの塗りつぶし、そして視覚効果(影、グロー、ぼかし、反射)の追加が可能です。

RAII セマンティクスにより信頼性の高いリソース解放が保証されます:Presentation デストラクタが内部状態を自動的に解放します。ロード時に遭遇した未知の XML パーツは保存時にそのまま保持されるため、ラウンドトリップ時にライブラリがまだ理解できないコンテンツが破壊されることはありません。このライブラリは C++17 準拠のコンパイラが必要です。

プレゼンテーションおよびスライド API

  • PPTX の作成とオープン: Presentation() または Presentation(path) を使用して新しいプレゼンテーションを作成したり、既存の .pptx ファイルを開いたりできます。
  • スライドの追加と削除: add_clone()remove()remove_at() を用いて SlideCollection をプログラムから管理できます。
  • AutoShape: add_auto_shape() を使って矩形、楕円、直線、その他の ShapeType ジオメトリを挿入できます。
  • テーブルとコネクタ: add_connector() を使用して構造化されたテーブルシェイプやシェイプ間のコネクタ線を追加できます。
  • スピーカーノート: NotesSlideManager を通じてスライドごとのスピーカーノートを読み書きできます。
  • スレッド化されたコメント: get_slide_comments() でスライドレベルのコメントスレッドにアクセスできます。

Aspose.Slides FOSS が使用できる場所

  • レポート生成: Office を使用せずにデータソースからブランド化されたスライドデックを作成できます。
  • テンプレート自動化: CI/CD パイプラインで動的コンテンツを使用して PPTX テンプレートを埋め込めます。
  • Content migration: 既存のプレゼンテーションを読み取り、スライドを再構成または再スタイル化します。
  • Embedded systems: パフォーマンスが重要な、またはリソースが制限された環境で PPTX ファイルを処理します。
  • Batch processing: 大規模なスライドデッキライブラリ全体に一貫した書式変更を適用します。

テキストの書式設定とビジュアルエフェクト

  • 文字レベルの書式設定: PortionFormat を使って個々の Portion オブジェクトに太字、斜体、フォントサイズ、色を適用できます。
  • 単色およびグラデーション塗りつぶし: FillFormatFillType を使用してシェイプの塗りを単色または複数ストップの線形グラデーションに設定できます。
  • 影とグロー効果: EffectFormat を介して任意のシェイプに外部影、グロー、ぼかし、反射を適用できます。
  • 段落の配置: ParagraphFormatset_alignment() を使って段落ごとに左揃え、中央揃え、右揃え、または両端揃えを設定できます。
  • ラウンドトリップ安全: 未知の XML パーツは再保存時にそのまま保持されます。

開発者体験

Aspose.Slides FOSS は CMake FetchContent を介して統合されるため、手動でのダウンロードやシステム全体へのインストールは不要です。ライブラリはプロジェクトと共にソースからビルドされます。

API は PowerPoint のオブジェクトモデル(PresentationSlideShapeCollectionTextFrameParagraphPortion)を鏡のように再現しているため、PowerPoint のオブジェクトモデルに慣れた人ならすぐにライブラリを使用できます。MIT ライセンスで GitHub 上でオープンソースとして提供されており、C++17 に準拠したコンパイラが必要です。

プレゼンテーションを作成し、シェイプを追加する

RAII により、Presentation デストラクタはオブジェクトがスコープを抜けたときにすべてのリソースを自動的に解放します。add_auto_shape()ShapeType 列挙型を受け取り、続いてポイント単位の x/y 位置と幅/高さを指定します — シェイプの text_frame からテキスト内容を設定できます。

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

    // 四角形のAutoShapeを追加
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("こんにちは、Aspose.Slides!");

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

テキストを書式設定し、塗りつぶしエフェクトを適用する

テキストの書式設定は Portion レベルで機能します — 文字列の最小単位です。保存されたファイルを開き、最初の段落の最初のポーションに移動し、フォントプロパティを直接設定します。シェイプの塗りつぶしは独立しています:塗りつぶしタイプをソリッドに設定し、色を割り当てます。

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

    // 太字、18pt テキスト
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // シェイプの背景を単色で塗りつぶす
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

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

よくある質問

Aspose.Slides FOSS for C++ とは何ですか?

Microsoft Office を必要とせずに、PowerPoint の .pptx プレゼンテーションを作成、読み取り、編集するための、無料で MIT ライセンスの C++ ライブラリです。

どのファイル形式がサポートされていますか?

PPTX がサポートされている読み書きフォーマットです。このエディションでは PDF、HTML、SVG、または画像へのエクスポートは利用できません。

Microsoft Office または PowerPoint が必要ですか?

いいえ。Aspose.Slides FOSS は、Microsoft Office、COM オートメーション、または任意のプロプライエタリランタイムに依存しないスタンドアロンの C++ ライブラリです。

インストール方法は?

CMake FetchContent を使用して、ライブラリを GitHub から直接統合します。このライブラリは C++17 準拠のコンパイラが必要です。

影やグローなどのビジュアルエフェクトを適用できますか?

はい。このライブラリは、EffectFormat API を介して任意のシェイプオブジェクトに外側の影、グロー、ぼかし、反射効果をサポートします。

このライブラリはリソース管理に RAII を使用していますか?

はい。Presentation デストラクタは内部状態を自動的に解放するため、明示的なクリーンアップは不要です。

PPTX をラウンドトリップすると、未知のコンテンツが破壊されますか?

いいえ。ロード時に遭遇した未知の XML パーツは保存時にそのまま保持されるため、ライブラリがまだ理解できないコンテンツが失われることはありません。

ソースコードはどこで入手できますか?

このライブラリはMITライセンスで、GitHubでホストされています。バグ報告やプルリクエストは歓迎します。

  

サポートと学習リソース

 日本語