作成した同じPPTXテンプレート上のさまざまなユーザの異なる入力/レポートに基づいて複数のレポート(N PPTXファイル)を生成しようとしています。Apache POI PPT(Java) - テキストフォーマット/形状の書式設定を維持するTextShapeの更新
PPTXテンプレートには、既にフォーマットされた単一のXSLFTextParagraph(つまり、図形とテキストの両方)を含むいくつかの書式設定済みのXSLFTextShapeがあります。各シェイプには、特定のプレースホルダが含まれており、これをダイナミック値で置き換える必要があります。私はこの値をMap(プレースホルダ、newValue)に持っています。私が使用して新しい値でプレースホルダを更新することに成功しています:私は出力にPPTXを生成するときテキストが更新されますが、フォント、色、フォントの書式、フォントサイズが、私はで定義されたものと比較して変化している、
textShape.clearText();
XSLFTextRun run = paragraph.addNewTextRun();
run.setText(newText);
をので、テンプレート。どうすれば同じ書式を保持できますか?
オリジナルの書式設定のままテキストを変更するだけのソリューションはありますか?
ありがとうございます!
使用XWPFRunそれの言葉 –
こんにちは用のテキストを使用して実行するようにあなたのでgetStyle()およびsetStyle()を提供しています!答えをありがとう。少し詳しく説明できますか?私のオブジェクト 'XSLFTextShape'から' XWPFRun'をどのように設定するのですか?テンプレートからスタイルを取得すると、 'set'をどのように適用できますか? おかげ – IceSte86
私は何かを実装しようとしたが、あなたが言及したオブジェクトが、Word文書に特異的であると思われる - PPTでは動作しません: 'XWPFDocumentドキュメント=新XWPFDocument(OPCPackage.open(pptxAbsolutePath));' '要素presentation @ http://schemas.openxmlformats.org/presentationml/2006/mainは有効なドキュメントではありません@ http://schemas.openxmlformats.org/wordprocessingml/2006/mainドキュメントまたは有効な置換。 – IceSte86