前回版の課題
前回の記事(http://ayumax.hatenablog.com/entry/2018/05/06/231645)の段階では以下の課題がありました。
- テキストの位置を自由に変更できない
- イメージ挿入機能がない
- テキストが全て箇条書きになる
そこで今回はそれらの対策を行いました。
テキストの位置設定
PPTXTextAreaクラスを新規作成し、Position(x,y)とSize(width, height)を設定できるようにした。 パワポの世界ではcmで設定するようなのでcmで値は入れれるように行った。(内部で変換している)
イメージの挿入
これまたPPTXImageクラスを新規作成して対応。
PPTXTextAreaと同様に位置も指定できるようにした。
ただ課題があって、もと画像のアスペクト比を保ったまま拡縮ができない。。やろうと思うとSizeの値をアスペクト比を保った値に自分でいれてあげる必要があり、ちょっと不便。
テキストの箇条書き設定
PPTXBulletを新規作成。enumでテキストの箇条書き設定を設定可能。
結果
入力ソース
using (PPTXDocument document = new PPTXDocument(PPTXFilePath, settings))
{
document.Slides = new List<PPTXSlide>()
{
new PPTXSlide()
{
SlideLayout = settings.SlideLayouts[EPPTXSlideLayoutType.TitleAndContents],
Title = new PPTXTextArea("コンテンツ1ページ目"),
TextAreas = new List<PPTXTextArea>()
{
new PPTXTextArea("本文です。\n\\nをいれると改行もされます")
}
},
new PPTXSlide()
{
SlideLayout = settings.SlideLayouts[EPPTXSlideLayoutType.TitleOnly],
Title = new PPTXTextArea("コンテンツ2ページ目"),
TextAreas = new List<PPTXTextArea>()
{
new PPTXTextArea("パワーポイント2枚目のテキスト1", 1, 5, 20, 2),
new PPTXTextArea(1, 7, 20, 7)
{
Texts = new List<PPTXText>()
{
new PPTXText("2枚目1行目", PPTXBullet.Circle),
new PPTXText("2枚目2行目", PPTXBullet.Circle),
new PPTXText("2枚目3行目", PPTXBullet.Rectangle),
new PPTXText("2枚目4行目 箇条書き解除")
}
}
},
Images = new List<PPTXImage>()
{
new PPTXImage(@"C:\temp\sample.jpg", 1, 15, 5, 3),
new PPTXImage(@"C:\temp\sample.jpg", 7, 15, 5, 3)
}
}
};
}
結果



次
これでpptx作成機能はひと段落。
フォントの設定機能もあった方が良いかなあとも思うけど、あまり凝りすぎると先に進まないので必要最低限で。
またいるなって思ったら検討する予定。
次はMarkdownの解析にはいろう。