JavaScript で PowerPoint スライドを PNG に変換

概要

この記事では、Aspose.Slides for Node.js via Java を使用してプレゼンテーションスライドを PNG 画像に変換する方法を説明します。PPT、PPTX、ODP などの形式でプレゼンテーションをロードし、各スライドをレンダリングして、個別の PNG 画像として保存できます。

以下の例では、デフォルトスケールでのレンダリング、スケールの拡大、ピクセル単位での出力サイズの指定、そしてグラデーションレンダリングスタイルの選択を示します。

PowerPoint を PNG に変換

プレゼンテーションは Presentation クラスでロードし、Presentation.getSlides コレクションからスライドにアクセスします。例では、パラメータなしで Slide.getImage を呼び出してサムネイルを作成し、各スライドをレンダリングします。その後、IImage.save に ImageFormat.Png を指定して、レンダリングしたスライドを PNG 画像として保存します。

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let slideCount = presentation.getSlides().size();
    for (let index = 0; index < slideCount; index++) {
        let slide = presentation.getSlides().get_Item(index);
        let image = slide.getImage();
        try {
            image.save("slide_" + index + ".png", aspose.slides.ImageFormat.Png);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

カスタム寸法で PowerPoint を PNG に変換

水平および垂直のスケール係数を Slide.getImage に渡すことで、レンダリングサイズを制御できます。この例では、両方の係数が 2 で、720 × 540 ポイントのスライドは 1440 × 1080 ピクセルの画像になります。スケール係数が同じ場合、スライドのアスペクト比が保持されます。各画像は IImage.save を使用して PNG 形式で保存されます。

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let scaleX = 2.0;
    let scaleY = scaleX;

    let slideCount = presentation.getSlides().size();
    for (let index = 0; index < slideCount; index++) {
        let slide = presentation.getSlides().get_Item(index);
        let image = slide.getImage(scaleX, scaleY);
        try {
            image.save("slide_" + index + ".png", aspose.slides.ImageFormat.Png);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

カスタムサイズで PowerPoint を PNG に変換

ピクセル単位で出力サイズを指定するには、スケール係数の代わりにサイズを Slide.getImage に渡します。この例では、すべてのスライドを 960 × 720 ピクセルでレンダリングし、結果を IImage.save で保存します。画像が伸びるのを防ぐため、スライドのアスペクト比に合わせたサイズを選択してください。

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");

let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    let imageSize = java.newInstanceSync("java.awt.Dimension", 960, 720);

    let slideCount = presentation.getSlides().size();
    for (let index = 0; index < slideCount; index++) {
        let slide = presentation.getSlides().get_Item(index);
        let image = slide.getImage(imageSize);
        try {
            image.save("slide_" + index + ".png", aspose.slides.ImageFormat.Png);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

グラデーションレンダリングスタイルの選択

スライドにグラデーション塗りが含まれているが、エクスポートされた PNG の遷移が PowerPoint で見るものよりも明るい、あるいは異なる場合があります。RenderingOptions が継承する SaveOptions.setGradientStyle メソッドを使用して、グラデーションのレンダリング方法を選択できます。

gradient-styles.pptx をダウンロードし、アプリケーションの作業ディレクトリに配置します。最初のスライドには、上部がシアンからオレンジ、下部が青から黄色へ変化する 2 つの線形グラデーションが含まれています。各グラデーションは 0% と 100% の 2 つのストップを持ちます。

以下の例では、このプレゼンテーションをロードし、Slide.getImage を使用して同じ最初のスライドを両方のモードでレンダリングします。

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

let presentation = new aspose.slides.Presentation("gradient-styles.pptx");
try {
    let slide = presentation.getSlides().get_Item(0);

    let gradientStyles = [aspose.slides.GradientStyle.Default, aspose.slides.GradientStyle.PowerPointUI];
    for (let style of gradientStyles) {
        let options = new aspose.slides.RenderingOptions();
        options.setGradientStyle(style);

        let styleName = style == aspose.slides.GradientStyle.Default ? "Default" : "PowerPointUI";
        let image = slide.getImage(options, 1.0, 1.0);
        try {
            image.save("gradient-" + styleName + ".png", aspose.slides.ImageFormat.Png);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
}

以下の画像は同じスライドの出力を示しており、各画像に両方のグラデーションが含まれています。

デフォルト PowerPointUI
デフォルトでレンダリングされたシアンからオレンジ、青から黄色へのグラデーション PowerPointUI でレンダリングされた同じグラデーション

この例では、Default は中間色がより明るくなり、PowerPointUI は中間色がより暗くなります。違いはグラデーションの色とストップに依存します。

標準の Aspose.Slides 出力が要件に合う場合は Default を選択してください。PowerPoint の外観と一致させることが優先事項の場合は PowerPointUI を試してください。両方の出力を目的の結果と比較してください。どちらのモードも普遍的に優れているわけではありません。

よくある質問

スライド全体ではなく、チャートや画像などの特定のシェイプだけをエクスポートするにはどうすればよいですか?

Aspose.Slides は、個別シェイプのサムネイル生成 をサポートしており、シェイプを PNG 画像としてレンダリングできます。

サーバーで並列変換はサポートされていますか?

はい。各スレッドまたはプロセスごに個別のプレゼンテーション インスタンスを使用してください;スレッド間で単一のインスタンスを共有しないでください。

PNG へエクスポートする際の評価版の制限は何ですか?

評価モードでは、出力画像に透かしが追加され、その他の制限 がライセンスが適用されるまで適用されます。