xslt中让两个fo:block处于同一行,展示不同的样式

在xslt中,有时需要使用两个fo:block在同一行,展示不同的样式,前面的是标题需要加粗,后面的是内容无任何变化,此时直接使用fo:block存在问题。

可以使用fo:list-block已经其子标签进行编写,就能解决此问题。为了实现第一个block加粗,第二个block不加粗,SimHei是黑体加粗,SimSun是宋体不加粗。

代码如下:

<fo:list-block provisional-distance-between-starts="50% + 5pt" 
provisional-label-separation="10pt">
				<!-- 备注 -->
				<fo:list-item>
					<fo:list-item-label end-indent="label-end()">
						<fo:block font-size="15pt" font-family="SimHei" text-indent="2em">
							备注:
						</fo:block> 
					</fo:list-item-label>
					<fo:list-item-body start-indent="body-start()">
						<fo:block font-size="15pt" font-family="SimSun">
							<xsl:value-of select="note/notePara"/>
						</fo:block> 
					</fo:list-item-body>
				</fo:list-item>
				<!-- 活动 -->
				<fo:list-item>
					<fo:list-item-label end-indent="label-end()">
						<fo:block font-size="15pt" font-family="SimHei" text-indent="2em">
							活动:
						</fo:block> 
					</fo:list-item-label>
					<fo:list-item-body start-indent="body-start()">
						<fo:block font-size="15pt" font-family="SimSun">
							<xsl:value-of select="action"/>
						</fo:block> 
					</fo:list-item-body>
				</fo:list-item>
				<!-- 步骤问题 -->
				<fo:list-item>
					<fo:list-item-label>
						<fo:block font-size="15pt" font-family="SimHei" text-indent="2em">
							提问:
						</fo:block> 
					</fo:list-item-label end-indent="label-end()">
					<fo:list-item-body start-indent="body-start()">
						<fo:block font-size="15pt" font-family="SimSun" text-indent="5em">
							<xsl:value-of select="isolationStepQuestion"/>
						</fo:block> 
					</fo:list-item-body>
				</fo:list-item>
			</fo:list-block>

provisional-distance-between-starts,end-indent,start-indent都是为了控制输出的宽度和大小,不是很熟悉,也不用熟悉,有例子能使用就还行。
这个还有问题,利用百分比调整存在位置误差,50%对于长文本不存在问题,对于短文本,A3,A4不同类型百分比控制不住,可以使用缩进方式。

代码如下:

<fo:list-block>
				<!-- 备注 -->
				<fo:list-item>
					<fo:list-item-label>
						<fo:block font-size="15pt" font-family="SimHei" text-indent="2em">
							备注:
						</fo:block> 
					</fo:list-item-label>
					<fo:list-item-body>
						<fo:block font-size="15pt" font-family="SimSun" text-indent="5em">
							<xsl:value-of select="note/notePara"/>
						</fo:block> 
					</fo:list-item-body>
				</fo:list-item>
				<!-- 活动 -->
				<fo:list-item>
					<fo:list-item-label>
						<fo:block font-size="15pt" font-family="SimHei" text-indent="2em">
							活动:
						</fo:block> 
					</fo:list-item-label>
					<fo:list-item-body>
						<fo:block font-size="15pt" font-family="SimSun" text-indent="5em">
							<xsl:value-of select="action"/>
						</fo:block> 
					</fo:list-item-body>
				</fo:list-item>
				<!-- 步骤问题 -->
				<fo:list-item>
					<fo:list-item-label>
						<fo:block font-size="15pt" font-family="SimHei" text-indent="2em">
							提问:
						</fo:block> 
					</fo:list-item-label>
					<fo:list-item-body>
						<fo:block font-size="15pt" font-family="SimSun" text-indent="5em">
							<xsl:value-of select="isolationStepQuestion"/>
						</fo:block> 
					</fo:list-item-body>
				</fo:list-item>
			</fo:list-block>

当然也可以使用表格的方式,将两个fo:block放在表格中,也能解决问题,代码如下:

<fo:table border-style="solid" border-width="0pt" table-layout="fixed" width="100%" overflow="auto">
			<fo:table-column column-width="3cm"/>
			<fo:table-column/>
				<fo:table-body>
					<fo:table-row>
						<fo:table-cell>
							<fo:block font-size="15pt" font-family="SimHei" text-indent="2em">
								提问:
							</fo:block> 
						</fo:table-cell>
						<fo:table-cell>
							<fo:block font-size="15pt" font-family="SimSun">
								<xsl:value-of select="isolationStepQuestion"/>
							</fo:block> 
						</fo:table-cell>
					</fo:table-row>
				</fo:table-body>
			</fo:table>

具体情况用具体方法。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值