Javaを介してPowerPoint2007/2010プレゼンテーションを生成/編集できるAPI(商用またはオープンソース)を知っている人はいますか。編集/更新する必要があるPowerPoint2007/2010形式のテンプレートがあります。これまで、.pptxファイルをxmlに変換し、編集して.pptxとして保存してきました。ただし、ファイルを開くときにファイルが破損します。
Javaでこれを行う他のメソッドまたはAPIを知っている人はいますか?
私たちはプログラムでそれを行ったので(現時点ではクローズドソース、申し訳ありません)、助けることができるかもしれませんが、いくつかの落とし穴に注意してください。
1つは、POIプロジェクト(少なくとも昨年の調査では)が非常に不完全だったことです。それはPPTXチャートをしませんでした-それは私たちが望んでいた1つの機能です。実際、POIサイトは最新ではない可能性がありますが、PowerPoint 20087形式をサポートしていないようです( http://poi.Apache.org/slideshow/index.html )。誰もがこのプロジェクトを推奨していますが、私たちの評価では、Javaを介してPowerPoint2007ファイルを生成するのにはほとんど役に立たなかったということです。あなたのマイレージは異なる場合があります。
Aposeを見ると、いくつかの重要な制限もありました。 PowerPoint 2007でグラフを作成しないことが、私たちのブロックの問題です。
もう1つの問題は、PowerPoint2007がかなりバグがある可能性があることです。ロックアップの原因となる、プログラマティックに作成されたPPTファイルがいくつかありますが、テストしたところ、PowerPoint 2007で作成された単純なPPTXドキュメントを使用して、クラッシュとロックアップを再現できることがわかりました。コード。
最後に、次のことを行いました。「テンプレート」PowerPointファイルをフォルダーに解凍し、必要に応じて、テンプレートXMLに新しい値を入力し、圧縮して、さまざまな要素の名前を変更し、有効なPPTXとしてユーザーに配信しました。人々がファイルを編集するときの奇妙なPowerPointのクラッシュを除いて、問題なく動作します。市場があれば、コードをWebサービス(xml/csv-> PPTX)としてパッケージ化するか、商用パッケージにまとめることができると思いますが、無料ではありません。
docx4j (Apacheライセンス)には、pptxドキュメントを開く/編集/保存できるpptx4jコンポーネントが含まれるようになりました。
はい。これをチェックしてください http://poi.Apache.org/ 、彼らはOffice2007フォーマットのドキュメントをサポートするバージョン3.6をリリースしたばかりです。最高の部分はそれが無料であるということです!
あなたのために働くかもしれないもう一つの解決策は Windward Reports (免責事項、私はそこでの創設者兼CEOです)です。サポートされているテンプレート形式の1つとしてPPTXを使用し、データをマージしてPPTX(またはPDFなど)出力を生成します。
必要な編集/更新をWindwardのデータタグを介して処理できる場合、これは簡単なことです。必要なものをタグで処理できない場合、これは機能しません。
テンプレートファイルからPowerPointプレゼンテーションを生成するには、 PPTテンプレート を使用できます。
このライブラリは、PPTテンプレート内の変数を置き換えるための流暢なAPIを提供します:
try(FileOutputStream out = new FileOutputStream("generated.pptx")) {
new PptMapper()
.text("variable", "Hello")
.text("other_variable", "World!")
.processTemplate(PptTemplateDemo.class.getResourceAsStream("/title.pptx"))
.write(out);
}
このライブラリを使用すると、テンプレート内のテキストと画像を処理できます。