Node.js で PPT を PPTX に変換
概要
PPT は従来のバイナリ PowerPoint 形式で、PPTX は新しい Open XML 形式です。Aspose.Slides for Node.js via Java は Microsoft PowerPoint を使用せずに PPT ファイルを読み込み、PPTX として保存できます。本記事では、単一ファイルまたはディレクトリ内のファイルを変換する方法と、変換後に確認すべき項目を説明します。
PPT ファイルを PPTX に変換
ソース ファイルは Presentation クラスで読み込み、Presentation.save を SaveFormat.Pptx とともに呼び出します。finally ブロックはプレゼンテーションを破棄し、リソースを解放します。
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
// レガシー PPT プレゼンテーションを読み込む。
let presentation = new aspose.slides.Presentation("presentation.ppt");
try {
// プレゼンテーションを PPTX 形式で保存する。
presentation.save("presentation.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ファイル拡張子だけでは出力形式は決定されません。出力形式は SaveFormat.Pptx 引数で指定します。元の PPT ファイルを保持する必要がある場合は、入力パスと出力パスを異なる場所に設定してください。
複数の PPT ファイルを変換
以下の例は、1 つのディレクトリ内のすべての .ppt ファイルを変換します。各ファイルは独立して処理されるため、1 つの変換が失敗してもバッチ全体が中断されることはありません。
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const fs = require("fs");
const path = require("path");
const inputDirectory = "input";
const outputDirectory = "output";
fs.mkdirSync(outputDirectory, { recursive: true });
const inputFiles = fs.readdirSync(inputDirectory, { withFileTypes: true })
.filter(entry => entry.isFile() && path.extname(entry.name).toLowerCase() === ".ppt")
.map(entry => entry.name);
for (const fileName of inputFiles) {
const inputPath = path.join(inputDirectory, fileName);
const outputFileName = path.basename(fileName, path.extname(fileName)) + ".pptx";
const outputPath = path.join(outputDirectory, outputFileName);
let presentation = null;
try {
presentation = new aspose.slides.Presentation(inputPath);
presentation.save(outputPath, aspose.slides.SaveFormat.Pptx);
console.log("Converted: " + inputPath);
} catch (error) {
console.error("Failed: " + inputPath + " (" + error.message + ")");
} finally {
if (presentation !== null) {
presentation.dispose();
}
}
}
本番環境では、エラー全体をログに記録し、既存の出力ファイルを上書きするかどうかを判断し、失敗したファイル名を再試行またはレビュー キューに書き出します。破損したファイル、必要なパスワードなしで開いたパスワード保護されたファイル、アクセスできないパス、サポートされていないコンテンツは、いずれも変換失敗の原因となります。暗号化ファイルの読み込みについては、Password-Protected Presentations を参照してください。
忠実度とレガシー機能
変換では通常、スライド、マスタ、レイアウト、テキスト、図形、画像、表、チャートが保持されます。しかし、PPT と PPTX はすべての機能を全く同じ形で表現できるわけではありません。PPTX に対応するものがなく、かつライブラリでサポートされていないレガシー機能は、正規化されたり、省略されたり、別の形で表示されたりする可能性があります。
変換後のファイルにアニメーション、トランジション、埋め込みまたはリンクされた OLE オブジェクト、ActiveX コントロール、埋め込みメディア、マイナーなフォント、VBA マクロが含まれる場合は、必ず確認してください。通常の PPTX ファイルはマクロ有効形式ではないため、VBA を保持する必要がある場合は、マクロ有効なワークフローを使用してください。また、変換されたプレゼンテーションが開かれるまたはレンダリングされる環境に、必要なフォントや外部リソースが存在することも確認してください。
重要なドキュメントについては、生成された PPTX をプログラムから再度開き、スライド数や主要なコンテンツを検査し、対象のビューアでの見た目やスライドショーの挙動と比較してください。Presentation.save 呼び出しが成功したことを、すべてのレガシー機能が正確に PPTX に変換された証拠とみなさないでください。
PPTX を使用すべき場面
現在の PowerPoint バージョンで編集する、Open XML パッケージを扱うシステムとやり取りする、またはレガシーなバイナリ PPT よりも検査や復元が容易な形式で保存する場合は、PPTX を使用してください。変換されたプレゼンテーションが忠実度チェックを通過するまで、元の PPT をアーカイブまたはロールバック用のコピーとして保持してください。
代わりに PDF、HTML、画像、XPS、または他の出力形式が必要な場合は、すべての対象が編集可能な PowerPoint 機能を保持すると決めつけず、Convert Presentations to Multiple Formats にある形式別ガイダンスを参照してください。
オンライン コンバータ
たまにファイルを変換する、または簡単に比較したい場合は、online PPT to PPTX converter を利用できます。繰り返しの変換やバッチ処理、アプリケーションレベルのエラーハンドリングが必要な場合は、Node.js via Java API を使用してください。
関連記事
FAQ
Microsoft PowerPoint がインストールされていなくても PPT を PPTX に変換できますか?
はい。Aspose.Slides for Node.js via Java は Microsoft PowerPoint を必要とせずにプレゼンテーション ファイルを読み込み、保存できます。
PPT から PPTX への変換はすべてのコンテンツを完全に保持しますか?
一般的なプレゼンテーション コンテンツは保持されますが、すべてのレガシー機能やサポートされていない機能が正確に保持される保証はありません。マクロ、OLE または ActiveX オブジェクト、メディア、特殊なアニメーション、マイナーなフォントが含まれる場合は、生成されたファイルを確認してください。
パスワード保護された PPT ファイルを変換できますか?
はい、ファイルを読み込む際に正しいパスワードを指定すれば変換できます。パスワードが無い、または誤っている場合は読み込みが失敗します。
変換後に PPT ファイルを削除すべきですか?
重要なビューアやワークフローで PPTX を確認するまで、元のファイルは保持してください。レガシー機能が異なる形で変換された場合のロールバック コピーとして役立ちます。