2010-12-29 9 views
2

XSL-FOドキュメントを作成していますが、一部のインライン要素に最小幅の値を設定します。 「|」、私は次のような結果XSL-FOインラインテキストのデフォルトの最小幅を設定します。

| FirstName: John  LastName: Smith        | 
| FirstName:    LastName: Smith        | 
| FirstName: SomeVeryVeryLongFirstNameOfSomePerson LastName: Smith | 
さんは左と右の境界線を表したい「文字列1」と「string2のは、」私のXMLからのデータとされる。例えば、次のような構造で

| FirstName:   string1   LastName:   string2   | 

( "John" "Smith"、 "" Smith "、" SomeVery ... "" Smith ")がXMLからロードされたときには、

となります。

Basicaly私はこの

<fo:block> 
FirstName: <fo:inline min-width="50mm"> <xsl:value-of ...> </fo:inline> LastName: <fo:inline min-width="50mm"> <xsl:value-of ...> </fo:inline> 
</fo:block> 

のようなものを必要とするが、これは(最小幅は無視されます)動作していません。私は、fo:blockにmin-widthを試し、インラインプログレッション - ディメンション、ブロック - プログレッションディメンション、fo:tableでいくつかの回避策を試しましたが、何も動作しません。私はApache FOP 1.0を使用しています。

誰でも手助けできますか? おかげで、事前

+0

何が問題なのですか? (min-widthは0.95 http://xmlgraphics.apache.org/fop/compliance.htmlではサポートされていませんが、1.0を使用していると言います)。私は、FOPディストリビューションの例のどれかがmin-widthを使用しているかどうか、そしてそこからビルドするかどうかを確認します。 –

+0

上記のコードが機能していない場合(iz ""、 "Smith"の場合、 "FirstName:姓:Smith"ではなく "FirstName:LastName:Smith"が生成されます。 を意味しますが、他の要素でどこでどのように使用するのかわかりませんが、 "min-width"属性の例はほとんどありません。fo:blockでは機能しません。横幅が必要です)。私は約2ヶ月前にFOP 1.0をダウンロードしました。バイナリバージョン、おそらくソースを変更しました。 – Nikola

答えて

0

に私もこの問題を抱えていたし、ウェブ上でいくつかの検索の後、私は解決策を発見:所望の幅と、あなたのテキストを置く場所の内部fo:blockfo:inline-containerを使用します。

<fo:inline-container text-align="center" width="1cm"> 
    <fo:block border-bottom="0.5pt solid #000"> 
    <xsl:value-of select="your/xpath/selector"/> 
    </fo:block> 
</fo:inline-container> 

お客様のニーズに合わせてwidthselectorを置き換えてください。この例には必要な一番下の行も含まれていますが、必須ではありません。fo:blockが不要な場合はborder-bottomを削除してください。元のソリューションと詳細については、How get fixed width for inline FO?を参照してください。

関連する問題