Aspose.Slides FOSS for C++ は、PowerPoint .pptx ファイルを扱うための MIT ライセンスのライブラリです。CMake FetchContent で統合すれば、Microsoft Office や任意のプロプライエタリランタイムをインストールせずに、すぐにプレゼンテーションの作成、読み取り、編集を開始できます。
このライブラリは、PowerPoint が内部で使用している概念モデルである Presentation、Slide、ShapeCollection、TextFrame、Paragraph、Portion を中心とした Presentation API を提供します。スライドの追加・削除、AutoShape、テーブル、コネクタの挿入、文字レベルでの太字・斜体・フォントサイズ・色によるテキスト書式設定、単色またはグラデーションの塗りつぶし、そして視覚効果(影、グロー、ぼかし、反射)の追加が可能です。
RAII セマンティクスにより信頼性の高いリソース解放が保証されます:Presentation デストラクタが内部状態を自動的に解放します。ロード時に遭遇した未知の XML パーツは保存時にそのまま保持されるため、ラウンドトリップ時にライブラリがまだ理解できないコンテンツが破壊されることはありません。このライブラリは C++17 準拠のコンパイラが必要です。
Presentation() または Presentation(path) を使用して新しいプレゼンテーションを作成したり、既存の .pptx ファイルを開いたりできます。add_clone()、remove()、remove_at() を用いて SlideCollection をプログラムから管理できます。add_auto_shape() を使って矩形、楕円、直線、その他の ShapeType ジオメトリを挿入できます。add_connector() を使用して構造化されたテーブルシェイプやシェイプ間のコネクタ線を追加できます。NotesSlideManager を通じてスライドごとのスピーカーノートを読み書きできます。get_slide_comments() でスライドレベルのコメントスレッドにアクセスできます。PortionFormat を使って個々の Portion オブジェクトに太字、斜体、フォントサイズ、色を適用できます。FillFormat と FillType を使用してシェイプの塗りを単色または複数ストップの線形グラデーションに設定できます。EffectFormat を介して任意のシェイプに外部影、グロー、ぼかし、反射を適用できます。ParagraphFormat と set_alignment() を使って段落ごとに左揃え、中央揃え、右揃え、または両端揃えを設定できます。Aspose.Slides FOSS は CMake FetchContent を介して統合されるため、手動でのダウンロードやシステム全体へのインストールは不要です。ライブラリはプロジェクトと共にソースからビルドされます。
API は PowerPoint のオブジェクトモデル(Presentation、Slide、ShapeCollection、TextFrame、Paragraph、Portion)を鏡のように再現しているため、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;
}
Microsoft Office を必要とせずに、PowerPoint の .pptx プレゼンテーションを作成、読み取り、編集するための、無料で MIT ライセンスの C++ ライブラリです。
PPTX がサポートされている読み書きフォーマットです。このエディションでは PDF、HTML、SVG、または画像へのエクスポートは利用できません。
いいえ。Aspose.Slides FOSS は、Microsoft Office、COM オートメーション、または任意のプロプライエタリランタイムに依存しないスタンドアロンの C++ ライブラリです。
CMake FetchContent を使用して、ライブラリを GitHub から直接統合します。このライブラリは C++17 準拠のコンパイラが必要です。
はい。このライブラリは、EffectFormat API を介して任意のシェイプオブジェクトに外側の影、グロー、ぼかし、反射効果をサポートします。
はい。Presentation デストラクタは内部状態を自動的に解放するため、明示的なクリーンアップは不要です。
いいえ。ロード時に遭遇した未知の XML パーツは保存時にそのまま保持されるため、ライブラリがまだ理解できないコンテンツが失われることはありません。
このライブラリはMITライセンスで、GitHubでホストされています。バグ報告やプルリクエストは歓迎します。