0

この優れたサンプルのおかげで、適切に構築された xml ファイルからコンテンツ コントロールを含む Word テンプレートに docx4j を使用して実行時に値をバインドする方法に慣れました。しかし、テンプレートに画像を挿入するという類似のことを達成する方法が見つかりません。

Word 開発者リボンを使用してテンプレートに画像コンテンツ コントロールを追加し、それを xml 入力の値 (画像の 64 ビットでエンコードされた文字列である値) にバインドしようとしました。しかし、docx4j でバインドを実行すると、生成された doc ファイルに画像が含まれず、代わりに奇妙な結果が得られます (キャプチャを参照)。

私のバインディング方法は次のようになります:

// Process conditionals and repeats
OpenDoPEHandler odh = new OpenDoPEHandler(_document);
odh.preprocess();

OpenDoPEIntegrity odi = new OpenDoPEIntegrity();
odi.process(_document);

// Apply the bindings
// Convert hyperlinks, using this style
BindingHandler.setHyperlinkStyle("Hyperlink");
BindingHandler.applyBindings(_document);

// Strip content controls: you MUST do this
// if you are processing hyperlinks
RemovalHandler rh = new RemovalHandler();
rh.removeSDTs(_document, Quantifier.ALL);

.docx result を保存した後の結果:

ここに画像の説明を入力

何か不足していますか?これを適切に行うためのサンプルをどこかで見つけることができますか?

ご協力いただきありがとうございます !CL

PS : docx4j フォーラムに同等の投稿を作成しました。有効な解決策が見つかった場合は、ここで報告します。

4

1 に答える 1

1

その画像は、次の方法で picture-bind.docx に埋め込まれたものです。

    <w:dataBinding w:xpath="/invoice[1]/items[1]/item[1]/name[1]" w:storeItemID="{3C1B665A-D738-4822-8EFB-14B133235CCB}"/>

そのバインディングを正常に変更していません。

docx4j / OpenDoPE の目的で、オーサリング アドインを使用してコンテンツ コントロールを作成することをお勧めします。base64 でエンコードされたイメージをバインドしていることをそのツールが検出すると、画像コンテンツ コントロールが自動的に作成されます。

于 2013-07-08T22:32:51.183 に答える