3

WordprocessingML を使用してプログラムで Word 文書を作成していますが、テキスト (w:t) ブロックで改行を保持する方法が見つかりません。次の方法でスペースに対処する実行間のスペースを保持できないという回答があります。

t = new Text()
{
    Text = "your text with spaces ",
    Space = SpaceProcessingModeValues.Preserve
};

ただし、docx ファイルのディレクトリ構造を作成し、ソース xml ファイルに対して xslt 変換を実行して、word が使用する主要な document.xml ファイルを生成する JavaScript ファイルを使用しています。上記のコードに対応する実際の低レベルの WordprocessingML 属性があるかどうかはわかりません。私が試してみました:

<w:t xml:space="preserve">
     Doesn't work.</w:t>

<w:t w:space="preserve"> 
      Also, no joy.</w:t>

これは可能ですか、それとも複数の段落 (w:p) タグが必要ですか? 使いやすさのために、ソース xml ファイルの編集者は、タブや段落などの追加の xml タグを手動で追加するよりも、必要な空白を単一のテキスト タグに入れることをお勧めします。

4

2 に答える 2

0

適切な属性は xml:space="preserve" で、適切に作成されたテスト docx ファイルを調べることで確認できますが、改行や段落の変更は許可されていません (これらは 1 つのスペースとしてカウントされます)。タブとスペースは w:t ブロック内で機能しますが、残念ながら、ソース xml で明示的な段落タグを使用する必要がありました。答えは、それを行うことができないということです (ただし、価値のない関連する文字列処理を伴うバックグラウンドを除きます)。

于 2014-05-09T18:01:34.260 に答える
0

段落内に改行を追加する場合は、 run ( ) 要素w:brに挿入する必要がある要素を使用する必要があります。w:rたとえば、次のマークアップが表示されFooBarその間に空の行が表示されます。

<w:r>
  <w:t>Foo</w:t>
  <w:br/>
  <w:br/>
  <w:t>Bar</w:t>
</w:r>
于 2014-05-09T20:22:40.020 に答える