プレゼンテーション ビューア
Aspose.Slides for .NET は、スライドを含むプレゼンテーションファイルを作成するために使用されます。これらのスライドは、Microsoft PowerPoint を使用してプレゼンテーションを開くことで表示できます。しかし、場合によっては、開発者が好きな画像ビューアでスライドを画像として表示する必要があるか、独自のプレゼンテーションビューアを作成する必要があることもあります。そのような場合に、Aspose.Slides for .NET を使用すると、個々のスライドを画像としてエクスポートすることができます。この記事では、その方法について説明します。
ライブ例
Aspose.Slides API で実装可能な内容を確認するために、Aspose.Slides ビューア の無料アプリを試してみてください:
スライドから SVG 画像を生成する
Aspose.Slides.PPTX for .NET を使用して任意のスライドから SVG 画像を生成するには、以下の手順に従ってください:
- Presentation クラスのインスタンスを作成します。
- ID またはインデックスを使用して、必要なスライドの参照を取得します。
- メモリストリーム内の SVG 画像を取得します。
- メモリストリームをファイルに保存します。
// プレゼンテーションファイルを表す Presentation クラスをインスタンス化します
using (Presentation pres = new Presentation("CreateSlidesSVGImage.pptx"))
{
// 最初のスライドにアクセスします
ISlide sld = pres.Slides[0];
// メモリストリームオブジェクトを作成します
MemoryStream SvgStream = new MemoryStream();
// スライドの SVG 画像を生成し、メモリストリームに保存します
sld.WriteAsSvg(SvgStream);
SvgStream.Position = 0;
// メモリストリームをファイルに保存します
using (Stream fileStream = System.IO.File.OpenWrite("Aspose_out.svg"))
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = SvgStream.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, len);
}
}
SvgStream.Close();
}
カスタムシェイプ ID で SVG を生成する
Aspose.Slides for .NET は、カスタムシェイプ ID を持つスライドから SVG を生成するために使用できます。そのためには、生成された SVG のシェイプのカスタム ID を表す ISvgShape の ID プロパティを使用します。CustomSvgShapeFormattingController を使用してシェイプ ID を設定できます。
using (Presentation pres = new Presentation("pptxFileName.pptx"))
{
using (FileStream stream = new FileStream(outputPath, FileMode.OpenOrCreate))
{
SVGOptions svgOptions = new SVGOptions
{
ShapeFormattingController = new CustomSvgShapeFormattingController()
};
pres.Slides[0].WriteAsSvg(stream, svgOptions);
}
}
class CustomSvgShapeFormattingController : ISvgShapeFormattingController
{
private int m_shapeIndex;
public CustomSvgShapeFormattingController(int shapeStartIndex = 0)
{
m_shapeIndex = shapeStartIndex;
}
public void FormatShape(ISvgShape svgShape, IShape shape)
{
svgShape.Id = string.Format("shape-{0}", m_shapeIndex++);
}
}
スライドのサムネイル画像を作成する
Aspose.Slides for .NET は、スライドのサムネイル画像を生成するお手伝いをします。Aspose.Slides for .NET を使用して任意のスライドのサムネイルを生成するには:
- Presentation クラスのインスタンスを作成します。
- ID またはインデックスを使用して、必要なスライドの参照を取得します。
- 参照されたスライドのサムネイル画像を指定されたスケールで取得します。
- 任意の画像形式でサムネイル画像を保存します。
// プレゼンテーションファイルを表す Presentation クラスをインスタンス化します
using (Presentation pres = new Presentation("ThumbnailFromSlide.pptx"))
{
// 最初のスライドにアクセスします
ISlide sld = pres.Slides[0];
// フルスケール画像を作成します
using (IImage image = sld.GetImage(1f, 1f))
{
// JPEG 形式でディスクに画像を保存します
image.Save("Thumbnail_out.jpg", ImageFormat.Jpeg);
}
}
ユーザー定義の寸法でサムネイルを作成する
- Presentation クラスのインスタンスを作成します。
- ID またはインデックスを使用して、必要なスライドの参照を取得します。
- 参照されたスライドのサムネイル画像を指定されたスケールで取得します。
- 任意の画像形式でサムネイル画像を保存します。
// プレゼンテーションファイルを表す Presentation クラスをインスタンス化します
using (Presentation pres = new Presentation("ThumbnailWithUserDefinedDimensions.pptx"))
{
// 最初のスライドにアクセスします
ISlide sld = pres.Slides[0];
// ユーザー定義の寸法
int desiredX = 1200;
int desiredY = 800;
// X および Y のスケール値を取得します
float ScaleX = (float)(1.0 / pres.SlideSize.Size.Width) * desiredX;
float ScaleY = (float)(1.0 / pres.SlideSize.Size.Height) * desiredY;
// フルスケール画像を作成します
using (IImage image = sld.GetImage(ScaleX, ScaleY))
{
// JPEG 形式でディスクに画像を保存します
image.Save("Thumbnail2_out.jpg", ImageFormat.Jpeg);
}
}
ノートスライドビューでスライドからサムネイルを作成する
Aspose.Slides for .NET を使用してノートスライドビューの任意のスライドのサムネイルを生成するには:
- Presentation クラスのインスタンスを作成します。
- ID またはインデックスを使用して、必要なスライドの参照を取得します。
- ノートスライドビューで指定されたスケールで参照されたスライドのサムネイル画像を取得します。
- 任意の画像形式でサムネイル画像を保存します。
以下のコードスニペットは、ノートスライドビューでプレゼンテーションの最初のスライドのサムネイルを生成します。
// プレゼンテーションファイルを表す Presentation クラスをインスタンス化します
using (Presentation pres = new Presentation("ThumbnailFromSlideInNotes.pptx"))
{
// 最初のスライドにアクセスします
ISlide sld = pres.Slides[0];
// ユーザー定義の寸法
int desiredX = 1200;
int desiredY = 800;
// X および Y のスケール値を取得します
float ScaleX = (float)(1.0 / pres.SlideSize.Size.Width) * desiredX;
float ScaleY = (float)(1.0 / pres.SlideSize.Size.Height) * desiredY;
// フルスケール画像を作成します
using (IImage image = sld.GetImage(ScaleX, ScaleY))
{
// JPEG 形式でディスクに画像を保存します
image.Save("Notes_tnail_out.jpg", ImageFormat.Jpeg);
}
}