Javaでプレゼンテーションを保存する方法
Aspose.Slides FOSS for Java saves presentations exclusively to .pptx フォーマットを使用して prs.save(path, SaveFormat.PPTX). このガイドでは、正しい保存パターン、別のパスへの保存、および一般的な保存関連エラーについて説明します。.
ステップバイステップ ガイド
ステップ1: Maven依存関係を追加する
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>ステップ 2: プレゼンテーションを開くまたは作成する
常に try-with-resources を使用してください。保存呼び出しは try ブロック内で行う必要があります。.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
// Create new
try (Presentation prs = new Presentation()) {
prs.save("new.pptx", SaveFormat.PPTX);
}
// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
prs.save("output.pptx", SaveFormat.PPTX);
}ステップ 3: すべての変更後に保存する
配置してください save() 呼び出しは、すべての変更が完了した後、try ブロック内の最後のステートメントとして行います。.
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 300, 100
);
shape.addTextFrame("Hello, World!");
prs.save("output.pptx", SaveFormat.PPTX);
}ステップ 4: 別のパスに保存する
元のファイルを変更せずに新しいファイルを作成するために、別の出力パスを渡します::
try (Presentation prs = new Presentation("template.pptx")) {
// modify ...
prs.save("customized.pptx", SaveFormat.PPTX);
}その template.pptx ファイルは変更されません; customized.pptx が作成されます(既に存在する場合は上書きされます)。.
ステップ 5: 出力を検証する
try ブロックが終了すると、ファイルは完成し閉じられます。存在するか確認してください:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
+ ", size: " + Files.size(output) + " bytes");サポートされている保存フォーマット
| フォーマット | 列挙値 | サポート |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.PPTX | はい |
| N/A | いいえ | |
| HTML | N/A | いいえ |
| SVG | N/A | いいえ |
| PNG / JPEG | N/A | いいえ |
| ODP(OpenDocument) | N/A | いいえ |
PPTX のみが完全にサポートされています。他のものを渡すと SaveFormat 値を prs.save(path, format) 静かに PPTX として保存します — 例外はスローされず、format 引数は無視されます。. UnsupportedOperationException は…によってのみスローされます prs.save(ISaveOptions options), フォーマットベースのオーバーロードではなく。.
一般的な問題と対策
java.io.IOException: Permission denied
出力ファイルが別のアプリケーションで開かれています(例: PowerPoint がファイルを開いている)。保存する前に他のアプリケーションでファイルを閉じてください。.
ファイルは作成されましたが、空または破損しているように見えます
確実にする prs.save() は try ブロック内で呼び出されるべきで、後で呼び出すべきではありません。try-with-resources ブロックが終了した後、 Presentation オブジェクトは破棄され、以降の呼び出しは失敗します。.
UnsupportedOperationException 保存するとき
これは使用するときに発生します prs.save(ISaveOptions options) — その ISaveOptions-ベースのオーバーロードは実装されていません。注: 非 PPTX を渡すこと SaveFormat に prs.save(path, format) 実行します ない この例外をスローする; それは黙ってPPTXとして保存します。.
よくある質問
開いたファイルと同じファイルに保存できますか??
はい。同じパスに保存すると元のファイルが上書きされます:
try (Presentation prs = new Presentation("deck.pptx")) {
// modify ...
prs.save("deck.pptx", SaveFormat.PPTX); // overwrites original
}OutputStream に保存できますか??
はい。 The save() メソッドは an を受け入れます OutputStream:
import java.io.FileOutputStream;
try (Presentation prs = new Presentation();
FileOutputStream fos = new FileOutputStream("output.pptx")) {
prs.save(fos, SaveFormat.PPTX);
}保存時に変更していないコンテンツは保持されますか??
はい。元のファイルに含まれる未知の XML パーツはそのまま保持されます。ライブラリはドキュメントモデルで理解できる部分だけをシリアライズし、認識できない XML はそのまま通過させます。.