プレゼンテーション コンテンツの追加と置換
PPT API を使用して PowerPoint® プレゼンテーションのコンテンツを追加または置き換えるには、以下のようにします。
追加または置き換えるプレゼンテーション コンテンツを保持するように PowerPoint テンプレートを設定する。
Paragraph
、Table
、Picture
オブジェクトなどの PPT API コンテンツ オブジェクトを作成する。PPT API コンテンツ オブジェクトを使用して、プレゼンテーションのコンテンツを追加または置き換える。
コンテンツは、いくつかの方法で追加または置き換えることができます。たとえば、以下を行うことができます。
コンテンツを、プレゼンテーション全体で、または特定のスライドで局所的に追加または置き換える。
テキスト ボックスにコンテンツを追加する。
テキスト ボックス、テーブルまたは画像を同じ種類のコンテンツに置き換える。
プレースホルダーをそのプレースホルダーに対応するコンテンツに置き換える。
段落、テーブル、テキスト ボックスの一部を置き換えることはできません。コンテンツ オブジェクト全体を置き換えます。
テンプレートの設定
既存の PowerPoint プレゼンテーションに対して、テンプレートを変更することなくコンテンツを置き換えたり、追加することができます。ただし、PPT API を使用するには、テンプレートとスライド オブジェクトに関する以下の知識が必要です。
スライド マスター名
スライド レイアウト名
スライド プレースホルダー名とコンテンツ オブジェクト名
テーブル スタイル名
PowerPoint を使用してプレゼンテーションにプレースホルダーを追加した後、PPT API を使用してそのプレースホルダーをコンテンツに置き換えることができます。プレゼンテーションで特定のコンテンツ オブジェクトを置き換える際、PowerPoint を使用してコンテンツ オブジェクトに一意の名前を与えることができます。その後、PPT API でその名前を使用します。
PPT API プログラムでの PowerPoint テンプレートの使用の詳細については、以下を参照してください。
コンテンツの置換
コンテンツ オブジェクト名を replace
メソッドと Slide
オブジェクトで指定することで、コンテンツを置き換えることができます。たとえば、既定の PPT API テンプレートでは、タイトル スライド レイアウトに "タイトル
" というコンテンツ オブジェクトが含まれます。
titleSlide = add(ppt,'Title Slide'); replace(titleSlide,'Title','This Is My Title');
プレゼンテーションのコンテンツを置き換えるには、find
メソッドを Presentation
または Slide
オブジェクトで使用できます。find
メソッドは、指定した検索値に一致する Name
プロパティ値をもつコンテンツ オブジェクトを検索します。その後、更新する返された項目のインデックスを使用できます。
ppt = Presentation('myPresentation'); titleSlide = add(ppt,'Title Slide'); contents = find(ppt,'Title'); replace(contents(1),'This Is My Title');
テキストの追加と置換
以下の方法を使用して、プレゼンテーションにテキストを追加したり、置き換えることができます。
テキストを指定する手法 | 関連する PPT API オブジェクト |
---|---|
これらのオブジェクト作成の一環としてテキストを指定する。 |
|
段落にテキストを追加する。 | 以下の PPT API オブジェクトにテキストを追加する。
|
プレゼンテーションまたはスライドの | 文字ベクトル、
|
プレースホルダー オブジェクトでテキストを追加または置き換える。 |
プレースホルダーのテキストの追加と置換を参照してください。 |
テキスト ボックスに追加または置き換える。 |
テキスト ボックスのテキストの追加または置換を参照してください。 |
プレースホルダーのテキストの追加と置換
ContentPlaceholder
と TextBoxPlaceholder
のテキストは、以下を指定して追加または置き換えができます。
文字ベクトル
Paragraph
オブジェクト文字ベクトルまたは
Paragraph
オブジェクトの cell 配列、または文字ベクトルとParagraph
オブジェクトの組み合わせ。入れ子にされた cell 配列は、入れ子にされたリスト項目 (インデントされたリスト項目) を指定します。
スライド レイアウトは、テキストが、段落、箇条書きリスト、番号付きリストのどれで表示されるかを指定します。
import mlreportgen.ppt.* name1 = 'before'; ppt = Presentation(name1); open(ppt); add(ppt,'Comparison'); replace(ppt, 'Left Content', 'dummy content'); replace(ppt, 'Right Content', 'dummy content'); close(ppt); name2 = 'after'; slides = Presentation(name2, name1); lefts = find(ppt, 'Left Content'); rights = find(ppt, 'Right Content'); para = replace(lefts(1), 'Left item in the list' ); para.Italic = true; para.FontColor = 'green'; replace(rights(1), { ... 'Right List item', ... { 'Inner right list item', 'Other inner right list item' }... 'Right List item', ... }); close(ppt); rptview(ppt);
テキスト ボックスのテキストの追加または置換
スライド内のテキスト ボックスは、テキストを追加可能なボックスです。プレゼンテーションのテキスト ボックスのコンテンツを、プログラムによって追加または置き換えることができます。
TextBox
オブジェクトを作成します。テキスト ボックスの位置と幅を指定します。add
メソッドをTextBox
オブジェクトで使用して、テキストを追加します。add
メソッドをPresentation
オブジェクトで使用するか、add
メソッドをSlide
オブジェクトで使用して、TextBox
オブジェクトをプレゼンテーションに追加します。
例:
import mlreportgen.ppt.* ppt = Presentation('myPresentation.pptx'); open(ppt); titleSlide = add(ppt,'Title Slide'); tb = TextBox(); tb.X = '2in'; tb.Y = '2in'; tb.Width = '5in'; add(tb,'Text for text box'); add(titleSlide,tb); close(ppt);
テーブルの追加または置換
プレゼンテーションでテーブルを追加または置き換えるには、次のいずれかの方法を使用します。
スライドにテーブルを直接追加する。
スライド レイアウトのプレースホルダーをテーブルで置き換える。たとえば、
Title and Content
またはTitle and Table
レイアウトがあるスライドを追加し、そのコンテンツまたはテーブル プレースホルダーをテーブルで置き換えます。テンプレート プレゼンテーションのテンプレート テーブルを別のテーブルで置き換える。
空白スライドへのテーブルの追加
mlreportgen.ppt.Table
オブジェクトを作成し、スライドに追加します。
import mlreportgen.ppt.* ppt = Presentation('myPresentation.pptx'); open(ppt); tableSlide = add(ppt,'Blank'); magicTable = Table(magic(5)); magicTable.X = '3in'; magicTable.Y = '5in'; add(tableSlide,magicTable); close(ppt);
replace
メソッドを使用して、すでにスライドに追加したテーブルを置き換えることができます。例:
import mlreportgen.ppt.* ppt = Presentation('myPresentation.pptx'); open(ppt); tableSlide = add(ppt,'Blank'); magicTable = Table(magic(5)); add(tableSlide,magicTable); newTable = Table(magic(4)); replace(magicTable,newTable); close(ppt);
テーブル プレースホルダーの置換
スライド レイアウトのテーブル プレースホルダーを置き換えることができます。たとえば、Title and Table
レイアウトがあるスライドを追加します。テーブル プレースホルダーは、mlreportgen.ppt.TablePlaceholder
オブジェクトで表されます。テーブル プレースホルダーを置き換えるには、TablePlaceholder
オブジェクトの replace
メソッドを使用します。
import mlreportgen.ppt.* ppt = Presentation('myPresentation.pptx'); open(ppt); tableSlide = add(ppt,'Title and Table'); table1 = Table(magic(9)); tblplaceholderObj = find(tableSlide,'Table'); replace(tblplaceholderObj,table1); close(ppt);
テンプレート テーブルの置換
既存のプレゼンテーションからプレゼンテーションを作成する場合、既存のプレゼンテーションのテーブル ("テンプレート テーブル") は、mlreportgen.ppt.TemplateTable
オブジェクトで表されます。このオブジェクトのプロパティを設定することで、テンプレート テーブルの位置、幅、高さを変更できます。テンプレート テーブルの XML マークアップも変更できます。テンプレート テーブルを置き換えるには、TemplateTable
オブジェクトの replace
メソッドを使用します。たとえば、'Title and Table'
レイアウトのスライドがある既存のプレゼンテーション myPresentation
から、プレゼンテーションを作成するとします。次のコードでは、テンプレート テーブルが別のテーブルに置き換えられます。
import mlreportgen.ppt.* ppt = Presentation('myNewPresentation.pptx','myPresentation.pptx'); open(ppt); slide1 = ppt.Children(1); templateTableObj = find(slide1,'Table'); replace(templateTableObj,Table(magic(4))); close(ppt);
画像の追加または置換
プレゼンテーションで画像を追加または置き換えるには、次のいずれかの方法を使用します。
スライドに画像を直接追加する。
スライド レイアウトのプレースホルダーを画像で置き換える。たとえば、
Title and Content
またはTitle and Picture
レイアウトのあるスライドを追加し、そのコンテンツまたは画像プレースホルダーを画像で置き換えます。テンプレート プレゼンテーションのテンプレート画像を別の画像で置き換える。
プレゼンテーションへの画像の追加
mlreportgen.ppt.Picture
オブジェクトを使用し、飛行機の画像をプレゼンテーションに含めます。
プレゼンテーションを作成します。
import mlreportgen.ppt.* ppt = Presentation("myPicturePresentation.pptx"); open(ppt);
Title and Content
レイアウトがあるスライドをプレゼンテーションに追加します。
add(ppt,"Title and Content");
飛行機のイメージを使用して Picture
オブジェクトを作成します。画像のサイズを指定します。
plane = Picture(which("b747.jpg")); plane.Width = "5in"; plane.Height = "2in";
スライドのコンテンツを画像に置き換えます。
replace(ppt,"Content",plane);
プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);
飛行機のイメージを使用して生成されたスライドは次のようになります。
画像の置換
プレゼンテーション内の画像を置き換えます。
プレゼンテーションを作成します。
import mlreportgen.ppt.* ppt = Presentation("myPictureReplacePresentation"); slide1 = add(ppt,"Blank");
mlreportgen.ppt.Picture
オブジェクトを作成します。
plane = Picture(which("b747.jpg")); plane.X = "1in"; plane.Y = "1in"; plane.Width = "5in"; plane.Height = "2in";
スライドに画像を追加します。
add(slide1,plane);
2 つ目の画像を作成します。
peppers = Picture(which("peppers.png")); peppers.X = "1in"; peppers.Y = "1in"; peppers.Width = "3in"; peppers.Height = "3in";
飛行機の画像をピーマンの画像に置き換えます。
replace(plane,peppers);
プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);
画像プレースホルダーから画像への置換
Title and Picture
スライドをプレゼンテーションに追加し、タイトルと画像プレースホルダーを独自のタイトルと画像に置き換えます。
PPT API クラスに長い完全修飾名を使用せずに済むよう、PPT 名前空間をインポートします。
import mlreportgen.ppt.*
プレゼンテーションを作成します。
ppt = Presentation("myPicturePlaceholderPresentation.pptx");
open(ppt);
Title and Picture
レイアウトのスライドを追加します。
slide = add(ppt,"Title and Picture");
スライド オブジェクトの find
メソッドを使用して、Title
という名前のプレースホルダー オブジェクトを見つけます。
titlePlaceholderObj = find(slide,"Title")
titlePlaceholderObj = TextBoxPlaceholder with properties: Bold: [] Font: [] ComplexScriptFont: [] FontColor: [] FontSize: [] Italic: [] Strike: [] Subscript: [] Superscript: [] Underline: [] BackgroundColor: [] VAlign: [] Name: 'Title' X: [] Y: [] Width: [] Height: [] Style: [] Children: [] Parent: [1×1 mlreportgen.ppt.Slide] Tag: 'ppt.TextBoxPlaceholder:30:125' Id: '30:125'
find
メソッドは、mlreportgen.ppt.TextBoxPlaceholder
オブジェクトを返します。
プレースホルダーのコンテンツをタイトル テキストに置き換えます。
replace(titlePlaceholderObj,"Airplane");
スライド オブジェクトの find
メソッドを使用して、Picture
という名前のプレースホルダー オブジェクトを見つけます。
picturePlaceholderObj = find(slide,"Picture")
picturePlaceholderObj = PicturePlaceholder with properties: Bold: [] Font: [] ComplexScriptFont: [] FontColor: [] FontSize: [] Italic: [] Strike: [] Subscript: [] Superscript: [] Underline: [] BackgroundColor: [] VAlign: [] Name: 'Picture' X: [] Y: [] Width: [] Height: [] Style: [] Children: [] Parent: [1×1 mlreportgen.ppt.Slide] Tag: 'ppt.PicturePlaceholder:31:126' Id: '31:126'
find
メソッドは、mlreportgen.ppt.PicturePlaceholder
オブジェクトを返します。
画像プレースホルダーを画像に置き換えます。
replace(picturePlaceholderObj,Picture("b747.jpg"));
プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);
PowerPoint® は画像の寸法を調整して、画像プレースホルダーに合わせます。画像プレースホルダーの寸法が Picture
オブジェクトの寸法より大きい場合、画像はそれに比例して引き伸ばされます。寸法が小さい場合、画像は中央に配置されます。
テンプレート画像の置換
既存のプレゼンテーションからプレゼンテーションを作成する場合、既存のプレゼンテーションの画像 ("テンプレート画像") は、mlreportgen.ppt.TemplatePicture
オブジェクトで表されます。このオブジェクトのプロパティを設定することで、テンプレート画像の位置、幅、高さを変更できます。テンプレート画像の XML マークアップも変更できます。テンプレート画像を置き換えるには、TemplatePicture
オブジェクトの replace メソッドを使用します。たとえば、'Title and Picture'
レイアウトのスライドがある既存のプレゼンテーション myPresentation
から、プレゼンテーションを作成するとします。次のコードでは、テンプレート画像が別の画像に置き換えられます。
プレゼンテーション MyPicturePresentation
を生成し、別のプレゼンテーションのテンプレート プレゼンテーションとして使用します。MyPicturePresentation
には、1 つの画像を含む 1 つのスライドがあります。
import mlreportgen.ppt.* ppt = Presentation("MyPicturePresentation"); open(ppt); slide1 = add(ppt,"Title and Picture"); replace(slide1,"Title","Street"); replace(slide1,"Picture",Picture("street1.jpg"));
プレゼンテーションを閉じて表示します。
close(ppt);
MyPicturePresentation
からプレゼンテーション MyNewPicturePresentation
を作成します。MyPicturePresentation
は MyNewPicturePresentation
のテンプレート プレゼンテーションです。
ppt = Presentation("MyNewPicturePresentation","MyPicturePresentation"); open(ppt);
スライド オブジェクトの find
メソッドを使用して、テンプレート画像を検索します。画像はテンプレート プレゼンテーション スライドから取得されているため、find
は画像を mlreportgen.ppt.TemplatePicture
オブジェクトとして返します。
slide1 = ppt.Children(1);
templatePictureObj = find(slide1,"Picture")
templatePictureObj = TemplatePicture with properties: XMLMarkup: '<p:pic><p:nvPicPr><p:cNvPr id="8" name="Picture"/><p:cNvPicPr><a:picLocks noChangeAspect="1" noGrp="1"/></p:cNvPicPr><p:nvPr><p:ph idx="13" sz="quarter" type="pic"/></p:nvPr></p:nvPicPr><p:blipFill><a:blip r:embed="rId2"><a:extLst><a:ext uri="{28A0092B-C50C-407E-A947-70E740481C1C}"><a14:useLocalDpi val="0" xmlns:a14="http://schemas.microsoft.com/office/drawing/2010/main"/></a:ext></a:extLst></a:blip><a:stretch><a:fillRect/></a:stretch></p:blipFill><p:spPr/></p:pic>' Name: 'Picture' X: [] Y: [] Width: [] Height: [] Style: [] Children: [] Parent: [1×1 mlreportgen.ppt.Slide] Tag: 'ppt.TemplatePicture:70:263' Id: '70:263'
画像を別の画像に置き換えます。
street2 = Picture("street2.jpg");
replace(templatePictureObj,street2);
プレゼンテーションを閉じて表示します。
close(ppt); rptview(ppt);