JavaでPowerPointスライドをPNGに変換
概要
この記事では、Aspose.Slides for Java を使用してプレゼンテーション スライドを PNG 画像に変換する方法を説明します。PPT、PPTX、ODP などの形式のプレゼンテーションを読み込み、各スライドを描画し、個別の PNG 画像として保存できます。
以下の例は、デフォルト スケールでの描画、スケールの拡大、ピクセル単位での出力サイズの指定、そしてグラデーション描画スタイルの選択を示しています。
PowerPoint を PNG に変換
Presentation クラスでプレゼンテーションをロードし、Presentation.getSlides コレクションからスライドにアクセスします。例では、パラメータなしで ISlide.getImage を呼び出してサムネイルを作成し、各スライドを描画します。その後、IImage.save に ImageFormat.Png を指定して、描画されたスライドを PNG 画像として保存します。
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
int slideCount = presentation.getSlides().size();
for (int index = 0; index < slideCount; index++) {
ISlide slide = presentation.getSlides().get_Item(index);
IImage image = slide.getImage();
try {
image.save("slide_" + index + ".png", ImageFormat.Png);
} finally {
image.dispose();
}
}
} finally {
presentation.dispose();
}
Note
パラメータなしの ISlide.getImage オーバーロードは 0.2 のスケールで描画します。たとえば、720 × 540 ポイントのスライドは 144 × 108 ピクセルのサムネイルになります。出力サイズを制御するには、下記のようにスケール ファクターまたは明示的な画像サイズのオーバーロードを使用します。カスタム寸法で PowerPoint を PNG に変換
水平および垂直のスケール ファクターを ISlide.getImage に渡して、描画サイズを制御します。この例では両方のファクターが 2 なので、720 × 540 ポイントのスライドは 1440 × 1080 ピクセルの画像になります。スケール ファクターが等しい場合、スライドのアスペクト比が保持されます。各画像は IImage.save を使用して PNG 形式で保存されます。
import com.aspose.slides.*;
Presentation presentation = new Presentation("presentation.pptx");
try {
float scaleX = 2f;
float scaleY = scaleX;
int slideCount = presentation.getSlides().size();
for (int index = 0; index < slideCount; index++) {
ISlide slide = presentation.getSlides().get_Item(index);
IImage image = slide.getImage(scaleX, scaleY);
try {
image.save("slide_" + index + ".png", ImageFormat.Png);
} finally {
image.dispose();
}
}
} finally {
presentation.dispose();
}
カスタムサイズで PowerPoint を PNG に変換
ピクセル単位で出力サイズを指定するには、スケール ファクターの代わりにサイズを ISlide.getImage に渡します。この例ではすべてのスライドを 960 × 720 ピクセルで描画し、IImage.save で結果を保存します。画像が伸びないように、スライドのアスペクト比に合ったサイズを選択してください。
import com.aspose.slides.*;
import java.awt.Dimension;
Presentation presentation = new Presentation("presentation.pptx");
try {
Dimension imageSize = new Dimension(960, 720);
int slideCount = presentation.getSlides().size();
for (int index = 0; index < slideCount; index++) {
ISlide slide = presentation.getSlides().get_Item(index);
IImage image = slide.getImage(imageSize);
try {
image.save("slide_" + index + ".png", ImageFormat.Png);
} finally {
image.dispose();
}
}
} finally {
presentation.dispose();
}
グラデーション描画スタイルの選択
スライドにグラデーション塗りが含まれていても、エクスポートされた PNG の遷移が PowerPoint で見えるものより明るくなる、または別の違いがあるとします。その場合、RenderingOptions が継承する SaveOptions.setGradientStyle メソッドを使用して、グラデーションの描画方法を選択できます。
gradient-styles.pptx をダウンロードし、アプリケーションの作業ディレクトリに配置します。最初のスライドには 2 つの線形グラデーションがあり、上部はシアンからオレンジ、下部は青から黄へ変化します。各グラデーションは 0% と 100% の 2 つのストップを持ちます。
以下の例はこのプレゼンテーションを読み込み、ISlide.getImage を使用して同じ最初のスライドを両方のモードで描画します。
import com.aspose.slides.*;
Presentation presentation = new Presentation("gradient-styles.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
int[] gradientStyles = { GradientStyle.Default, GradientStyle.PowerPointUI };
for (int style : gradientStyles) {
RenderingOptions options = new RenderingOptions();
options.setGradientStyle(style);
String styleName = style == GradientStyle.Default ? "Default" : "PowerPointUI";
IImage image = slide.getImage(options, 1f, 1f);
try {
image.save("gradient-" + styleName + ".png", ImageFormat.Png);
} finally {
image.dispose();
}
}
} finally {
presentation.dispose();
}
| デフォルト | PowerPointUI |
|---|---|
![]() |
![]() |
この例では、Default は中間色が明るく、PowerPointUI は中間色が暗くなります。差異はグラデーションの色とストップに依存します。
標準の Aspose.Slides 出力で問題なければ Default を選択してください。PowerPoint の外観と一致させることが優先事項であれば PowerPointUI を試してください。両方の出力を目的の結果と比較し、どちらのモードが適切か判断してください。
よくある質問
特定の図形(チャートや画像など)だけをエクスポートしたい場合はどうすればよいですか?
Aspose.Slides は 個々の図形のサムネイル生成 をサポートしており、図形を PNG 画像として描画できます。
サーバーでの並列変換はサポートされていますか?
はい。各スレッドまたはプロセスごとに別々のプレゼンテーション インスタンスを使用してください;スレッド間で単一インスタンスを共有しないでください。
PNG エクスポート時の評価版の制限は何ですか?
評価モードでは出力画像に透かしが追加され、ライセンスが適用されるまで その他の制限 が適用されます。

