我正在使用 Apache FOP 创建 PDF。
我的 XML 的一部分如下所示。基本上,我试图将标签的全部内容按原样放入 PDF 中,但我在这里遇到了一些挑战。 我希望当有空 TEXT 标签时有一个空格:
"<Text></Text>"
XML:
<Text>NUMBER : 123456 ABCDE - ASBI</Text>
<Text>REFERENCENUMBER : TECNO - ENOS-B</Text>
<Text></Text>
<Text>USER 1 : COMPANY XYZ</Text>
<Text> TECH CENTER1</Text>
<Text> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X XX</Text>
<Text> 0000 XXXXXXXXXXXXXXXXXXXX</Text>
<Text>USER 2 : COMPANY MNO</Text>
<Text> TECH CENTER2</Text>
<Text> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X XX</Text>
<Text> 0000 XXXXXXXXXXXXXXXXXXXX</Text>
<Text></Text>
<Text>QTY. SUBSCRIPTION PRICE, OPTICAL CAPACITY</Text>
我的代码由节点文本上的 for-each 块组成:
<xsl:for-each select="Text">
<fo:table-row>
<fo:table-cell>
<fo:block font-family="Courier" font-size="7pt" font-weight="normal" display-align="center" white-space="pre">
<xsl:value-of select="."/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
我能够使用 White-space="pre" 来实现标签中的空格。但是我如何得到一个空行呢? 我的输出如下所示:
NUMBER : 123456 ABCDE - ASBI
REFERENCENUMBER : TECNO - ENOS-B
USER 1 : COMPANY XYZ
TECH CENTER1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X XX
0000 XXXXXXXXXXXXXXXXXXXX
USER 2 : COMPANY MNO
TECH CENTER2
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X XX
0000 XXXXXXXXXXXXXXXXXXXX
QTY. SUBSCRIPTION PRICE, OPTICAL CAPACITY
预期输出:
NUMBER : 123456 ABCDE - ASBI
REFERENCENUMBER : TECNO - ENOS-B
USER 1 : COMPANY XYZ
TECH CENTER1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X XX
0000 XXXXXXXXXXXXXXXXXXXX
USER 2 : COMPANY MNO
TECH CENTER2
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX X XX
0000 XXXXXXXXXXXXXXXXXXXX
QTY. SUBSCRIPTION PRICE, OPTICAL CAPACITY
我添加了一张支票,它起作用了:
<xsl:for-each select="Text">
<fo:table-row >
<fo:table-cell>
<fo:block font-family="Courier" font-size="7pt" font-weight="normal" display-align="center" white-space="pre">
<xsl:value-of select="."/>
<xsl:if test="string-length(.) = 0">
<xsl:text> </xsl:text>
</xsl:if>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>