2012-05-11 12 views
1

ページ番号 "01"を1と9の2つの別個の数字0と1として印刷したいとします。 0X-> 01,02,03 ...これを行うにはどのように10 10,11,12XSL:FO Page Number()関数で先行ゼロを使用する

<fo:table-cell xsl:use-attribute-sets="TableCellBorder"> 
    <fo:block> 
     <xsl:value-of select="substring(<fo:page-number/>, 1, 1)"/> //0 or first page-number digit 
    </fo:block> 
</fo:table-cell> 
<fo:table-cell xsl:use-attribute-sets="TableCellBorder"> 
    <fo:block> 
     <xsl:value-of select="substring(<fo:page-number/>, 2, 1)"/>//second page-number digit 
    </fo:block> 
</fo:table-cell> 

99までの任意のアイデアから。 ?

+0

'Page-Number()'関数はありません。 ''のみがあります。 – mzjn

+0

この質問はむしろひどく言い表されています。あなたが望んでいたのは、少なくとも2桁の長さになるように書式設定されたページ番号だったのですが、どうしてそんなこと言わなかったのですか?私が答えて言ったように、(で 'substring()を使って)コードスニペットで何をしようとするとうまくいきません。 – mzjn

答えて

1
<fo:page-sequence master-reference="mymaster" format="01"> 
    ... 
    <fo:page-number/> 
    ... 
</fo:page-sequence> 

は、唯一のトリックはそれを配置する場所を考え出すされています。

申し訳ありませんが、XEPでのみテストされています。 FOPがそれをサポートしているかどうかは分かりません。

UPD。記事を検索可能にするために、「先行ゼロ」の単語を追加することを検討しますか?

+0

これにより、少なくとも2桁のページ番号が生成されます。しかし、それは**別個の数字**を持つことと同じではなく、異なるテーブルセル(これは質問のXSLTスニペットで試されるものです)に入れられます。 – mzjn

+0

@mzjn実際には、OPが達成しようとしていたものを私の最高の推測でした:) – bytebuster

+0

'master-name =" mymaster "'は間違っています。それは 'master-reference =" mymaster "'でなければなりません。 – mzjn

0

これはできません。

<fo:page-number/>は、XSL-FO構成体である。 XSL-FOプロセッサが実行されるまで値は取得されません。 XSL-FOマークアップを生成するXSLTスタイルシートでは操作できません。 hereを説明

関連する問題