我有一份文件,我需要使用修订栏跟踪更改(边距中的黑条表示发生了更改)。
更改后的文字是使用<span class="changeText">
完成的。
示例代码,如下:
<p>This is the original text. This is the original text. This is the original text. This
is the original text. This is the original text. <span class="changeText">This text has
changed. This text has changed. This text has changed.</span> This is the original text.
</p>
使用
我可以合理地接近fo:block background-color="lightyellow" border-end-color="black"
border-start-style="solid" border-start-width="4pt" padding-start="25pt"
当然,这将该部分视为一个块。我需要让它在内联工作......但是还没有找到正确的代码来提供这种类型的行为,文本流是内联的。
任何想法,我们的意见将得到赞赏。
谢谢!
答案 0 :(得分:1)
可以使用XSL-FO中的fo:change-bar
和fo:change-bar-end
来实现修订栏。
6.13.2 fo:change-bar-begin
https://www.w3.org/TR/xsl11/#fo_change-bar-begin
6.13.3 fo:change-bar-end
https://www.w3.org/TR/xsl11/#fo_change-bar-end
因此需要立即从fo:change-bar-begin
元素生成fo:inline
,fo:change-bar-end
和<span class="changeText">
,如下面的模板:
<xsl:template match="span[string(@class) eq 'changeText']">
<xsl:variable name="id" as="xs:string" select="generate-id(.)"/>
<fo:change-bar-begin change-bar-class="{$id}" change-bar-color="black" change-bar-style="solid"/>
<fo:inline background-color="yellow">
<xsl:apply-templates/>
</fo:inline>
<fo:change-bar-end change-bar-class="{$id}"/>
</xsl:template>
样本结果:
这是由AH Formatter生成的。不幸的是,FOP目前尚未实施fo:change-bar-begin
和fo:change-bar-end
。