2

opentbs を使用して、ユーザーがフォームに入力したデータから .docx 形式でレポートを生成しています。条件付きでフィールド間にスペースを追加できるようにしたいと考えています。問題のパラダイム例を次に示します。ユーザーは住所 (address1) を入力する必要がありますが、住所フィールドの直前と直後のフィールド (それぞれ会社と住所 2) はオプションです。テンプレートに差し込みフィールドを設定して、ユーザーがビジネス フィールドに何かを入力した場合、差し込み結果のドキュメントにスペースが続くビジネス フィールドの値が含まれるようにする方法はありますか?フィールドが空白の場合、マージの結果のドキュメントにはフィールドもスペースもありませんか? これを達成するための 2 つの方法が考えられます: 1. フィールドが "

これら 2 つのソリューションの疑似コードは次のとおりです。 onshow.address1]

これは可能に違いないように思えますが、私のdocxで、疑似コードを実際に機能するマージフィールドに変換する方法を見つけることができませんでした。テンプレート。このフォーラムと tbs フォーラムのすべてのエントリとドキュメントを検索しましたが、問題は直接提起されておらず、私が試したことはうまくいきませんでした。どんな助けでも大歓迎です。

4

3 に答える 3

4

businessそうでない場合、これはの値の後に改行なしのスペースを挿入します'':

[onshow.business; if [val] != ''; then [val] ]

発生する可能性のある問題は、Word がスペースを表す方法です...タグが正しく機能することを確認するために、問題の少ない文字を挿入することから始めることをお勧めし^ますa。空間を機能させます。

あなたがそれを見始めたら、私は試し みます\s: http://www.tinybutstrong.com/forum.php?thr=3234 thr=3263xml:space="preserve"

<w:t>次のようなタグに表示されるように見えるので、次のようにし<w:t xml:space="preserve">てみてください。

PHP:

$f = 'preserve';

テンプレート:

[onshow.business; if [val] != ''; then '[val] ';][onshow.p;att='xml:space']

を処理するためのより良い方法がおそらくありますattが、これで少なくとも開始できるはずです。

于 2014-03-25T15:32:06.813 に答える
2

[onshow.business]次の 2 つの解決策は、と[onshow.adress1]が同じ Ms Word 段落にあることを前提としています。

必ず:

[onshow.business]1) フィールドとは異なるテキスト形式を持つフィールドの後にスペースがありました。たとえば、スペース文字のフォント側を 1 だけ増やすことができます。

注: Ms Word は、テキストに適用される形式に応じて、テキストをいくつかのスニペットに分割します。各スニペットは独自の<w:r>要素で定義されます。

[onshow.business]2) 次に、フィールドが空のときに彼と一緒にスペースを削除するために、フィールドにパラメーター magnet を追加します。

例 :

Hello [onload.business;magnet=w:r+w:r] [onload.address1]

|スニペット区切りを表示する同じ例:

Hello |[onload.business;magnet=w:r+w:r]| |[onload.address1]

そのフィールド[onshow.business]は、その前のテキストとは別のスニペットにある必要があります。そうしないと、スペースを削除したのと同じ方法で前のテキストが削除されます。

于 2014-03-25T15:40:32.440 に答える