次の方法で共有


配布資料マスター スライドを操作する

このトピックでは、Open XML SDK for Office HandoutMaster クラスと、Open XML ファイル形式 PresentationML スキーマとの関係について説明します。 PresentationML ドキュメントを構成するパーツと要素の全体的な構造の詳細については、「 PresentationML ドキュメントの構造」を参照してください。

PresentationML の配布資料マスター スライド

ISO/IEC 29500 仕様で、Open XML PresentationML の PresentationML ドキュメントの配布資料マスター スライドを表すための <handoutMaster/> 要素は次のように記述されています。

この要素は、配布資料マスター スライドのインスタンスを指定するものです。 配布資料マスター スライド内には、配布資料スライド内のすべてのオブジェクトおよびオブジェクトに対応する書式設定を記述するすべての要素が含まれます。 配布資料マスター スライド内の cSld 要素は、図形および図形に添付されるテキスト本体などの、一般的な要素を指定します。 配布資料マスター スライド内には他のプロパティもありますが、cSld で handoutMaster スライドの本来の目的はほぼ達成されます。

© ISO/IEC 29500: 2016

次の表は、配布資料マスター スライドとそれらに対応する Open XML SDK クラスを操作するときに使用される <handoutMaster/> 要素の子要素の一覧です。

PresentationML 要素 Open XML SDK クラス
<ClrMap/> ColorMap
<cSld/> CommonSlideData
<extLst/> ExtensionListWithModification
<hf/> HeaderFooter

OPEN XML SDK HandoutMaster クラス

Open XML SDK HandoutMaster クラスは、PresentationML ドキュメントの Open XML ファイル形式スキーマで定義されている <handoutMaster/> 要素を表します。 PresentationML ドキュメント内の個々の<handoutMaster/>要素を操作するには、HandoutMaster クラスを使用します。

HandoutMaster クラスに一般的に関連付けられているクラスを次のセクションに示します。

ColorMap クラス

ColorMap クラスは、<ClrMap/> 要素に対応します。 ISO/IEC 29500 仕様の次の情報では、<ClrMap/>要素について説明します。

この要素は、配色定義を別の配色定義に変換するマッピング レイヤーを指定するものです。 各属性は、このマスター内で参照できる色の名前を表し、その値がテーマ内の対応する色になります。

: スライド マスターに適用される次の色マッピングを考察してください。

<p:clrMap bg1="dk1" tx1="lt1" bg2="dk2" tx2="lt2" accent1="accent1"  
accent2="accent2" accent3="accent3" accent4="accent4"
accent5="accent5"  
accent6="accent6" hlink="hlink" folHlink="folHlink"/>

CommonSlideData クラス

CommonSlideData クラスは、<cSld/> 要素に対応します。 ISO/IEC 29500 仕様の次の情報では、<cSld/>要素について説明します。

この要素は、すべてのスライドの種類に関連する、スライド情報の種類のコンテナーを指定します。 すべてのスライドは、スライドの種類に依存しないプロパティの共通セットを共有します。特定のスライドのこれらのプロパティの説明は、スライドの <cSld/> コンテナー内に格納されます。 親要素によって示されるスライドの種類に固有のスライド データは、別の場所に保存されます。

<cSld/> の実際のデータには、特定の親スライドだけが記述されています。保存されているのは、すべてのスライドに共通する情報の種類だけです。

ExtensionListWithModification クラス

ExtensionListWithModification クラスは、<extLst/> 要素に対応します。 以下の情報を参照してください。

ISO/IEC 29500

specification では、 <extLst/> 要素が導入されています。

要素タイプ <ext/> のすべての将来的な拡張が定義された、修正可能な拡張リストを指定します。 拡張リストは、対応する将来的な拡張と共に、PresentationML フレームワークの格納能力を拡張するために使用されます。 これにより、さまざまな新たな種類のデータをこのフレームワークにネイティブに格納できます。

注:

この extLst 要素を使用すると、生成元アプリケーションではこの拡張プロパティが変更されたかどうかを格納できます。

HeaderFooter クラス

HeaderFooter クラスは、<hf/> 要素に対応します。 ISO/IEC 29500 仕様の次の情報では、<hf/>要素について説明します。

この要素は、スライドのヘッダーおよびフッター情報を指定します。 ヘッダーおよびフッターは、日時、スライド番号、ユーザー設定のヘッダーおよびフッター テキストなど、すべてのスライドおよびスライドの種類で一貫している必要がある、テキストのプレースホルダーで構成されています。

HandoutMaster クラスの使用

次の Open XML SDK コード サンプルに示すように、 HandoutMaster クラスのすべてのインスタンスは、配布資料マスター パーツ、PresentationML プレゼンテーション ファイル パッケージの部分の 1 つ、配布資料を含むプレゼンテーション ファイルに必要な部分を表す HandoutMasterPart クラスのインスタンスに関連付けられます。

したがって、<handoutMaster/>要素を表す HandoutMaster クラスは、<handoutMaster/> 要素の子要素を表す一連の他のクラスにも関連付けられます。 次のコード サンプルに示すように、これらのクラスの中には、 CommonSlideData クラス、 ColorMap クラス、 ShapeTree クラス、 Shape クラスがあります。

Open XML SDK コード例

次のメソッドは、新しい配布資料マスター パーツを既存のプレゼンテーションに追加し、新しい配布資料マスター パーツに Open XML SDK HandoutMaster クラスのインスタンスを作成します。 HandoutMaster クラス コンストラクターは、CommonSlideData クラスと ColorMap クラスのインスタンスを作成します。 CommonSlideData クラス コンストラクターは、ShapeTree クラスのインスタンスを作成します。そのコンストラクターによって、NonVisualGroupShapeProperties クラスのインスタンス、GroupShapeProperties クラスのインスタンス、Shape クラスのインスタンスなどの追加のクラス インスタンスが作成されます。

コード内の文字 P で表される名前空間は、 名前空間です。

static HandoutMasterPart CreateHandoutMasterPart(PresentationPart presentationPart)
{
    HandoutMasterPart handoutMasterPart1 = presentationPart.AddNewPart<HandoutMasterPart>();
    handoutMasterPart1.HandoutMaster = new HandoutMaster(
                    new CommonSlideData(
                        new ShapeTree(
                            new P.NonVisualGroupShapeProperties(
                                new P.NonVisualDrawingProperties() { Id = (UInt32Value)1U, Name = "" },
                                new P.NonVisualGroupShapeDrawingProperties(),
                                new ApplicationNonVisualDrawingProperties()),
                            new GroupShapeProperties(new TransformGroup()),
                            new P.Shape(
                                new P.NonVisualShapeProperties(
                                    new P.NonVisualDrawingProperties() { Id = (UInt32Value)2U, Name = "Title 1" },
                                    new P.NonVisualShapeDrawingProperties(new ShapeLocks() { NoGrouping = true }),
                                    new ApplicationNonVisualDrawingProperties(new PlaceholderShape())),
                                new P.ShapeProperties(),
                                new P.TextBody(
                                    new BodyProperties(),
                                    new ListStyle(),
                                    new Paragraph(new EndParagraphRunProperties() { Language = "en-US" }))))),
                            new P.ColorMap()
                            {
                                Background1 = D.ColorSchemeIndexValues.Light1,
                                Text1 = D.ColorSchemeIndexValues.Dark1,
                                Background2 = D.ColorSchemeIndexValues.Light2,
                                Text2 = D.ColorSchemeIndexValues.Dark2,
                                Accent1 = D.ColorSchemeIndexValues.Accent1,
                                Accent2 = D.ColorSchemeIndexValues.Accent2,
                                Accent3 = D.ColorSchemeIndexValues.Accent3,
                                Accent4 = D.ColorSchemeIndexValues.Accent4,
                                Accent5 = D.ColorSchemeIndexValues.Accent5,
                                Accent6 = D.ColorSchemeIndexValues.Accent6,
                                Hyperlink = D.ColorSchemeIndexValues.Hyperlink,
                                FollowedHyperlink = D.ColorSchemeIndexValues.FollowedHyperlink
                            });

    return handoutMasterPart1;
}