2

Velocity テンプレート エンジンを使用して Word ドキュメントを動的に作成しています。ドキュメントは XML で作成されます (Microsoft Office 2003 WordprocessML XML 標準を使用)。

従来の方法で WordML 内に画像 (Base64 形式でエンコード) を埋め込んでいます。

<w:pict>  
    <v:shapeType> ... </v:shapeType>    
    <w:binData w:name="wordml://02000002.jpg"> [ encoded data] </w:binData>

    <v:shape id="_x0000_s1026"  
           type="#_x0000_t75"
           style="width:100%;height:100%" 
           o:allowoverlap="f"
           >
        <v:imagedata src="wordml://02000002.jpg" o:title="testimage2">
        </v:imagedata>
    </v:shape>

</w:pict>

問題は、画像のサイズ変更/スケーリングにあります。タグのstyle属性に注意してください。<v:shape>高さと幅を 100% に設定しても、イメージのサイズは実際のサイズにはなりません。高さと幅を約 1.04 インチに設定し、画像をゆがめます。高さと幅を省略しても同じ効果があります。高さと幅を に設定しautoても同じ効果があります。

生成されたドキュメントを Word 2003 で開くと、画像を右クリックして [画像の書式設定] ダイアログを開き、[サイズ] タブに移動すると、[元のサイズ] の下に正しい高さと幅が表示されます。画像を元のサイズにサイズ変更する「リセット」ボタンも提供します(「元の画像サイズに相対的」チェックボックスがオンになっていると仮定します)。

私は次のようになります: !*@&#^#% ???

だから私の質問は:

画像の元のサイズの値を取得する (または Word に元の画像サイズを使用するように指示する) ための WordML のコンテキストはありますか?

誰かがこの質問を手伝ってくれるなら、私がこれに対処しなければならない最後の人になるように、詳細なブログ投稿を書くことを約束します.

4

3 に答える 3

0

「v:shape」要素の「style」属性で width と height を 0px に設定する必要があります。例えば:

<v:shape style="width:0px;height:0px" >

また、画像は元のサイズになります。

于 2010-08-03T14:59:35.033 に答える
0

画像サイズを取得するために WordML に依存している理由がわかりません。Word 文書に画像をフィードしています。Bitmap クラスを使用して画像サイズを取得できます。

于 2012-03-14T16:26:26.220 に答える