左侧为原始文字,右侧为直译

时间:2018-10-12 08:12:52

标签: xsl-fo

我想生成一个带有XSL-FO的pdf文本,该文本的翻译面向主要文本,因此,在左侧页面上我将拥有原始文本,而在右侧页面上将获得该翻译。 我该怎么做?我尝试了here提出的解决方案,但没有成功,仅当内容不必转到下一页并且在那里提出的相同问题对我来说仍然适用时,它才有效。 有什么办法可以做到这一点,并有两个并行流程?

1 个答案:

答案 0 :(得分:0)

第一步,生成用于翻译的XSL-FO和主要文本,将其作为两列表(或三列,中间的列以避免装订线)。

如果使用的是AH Formatter,则可以使用axf:spread-page-master扩展名(请参阅https://www.antennahouse.com/product/ahf65/ahf-spread.html),然后将内容流到跨越跨页两页的fo:spread-region中。工作完成。

如果您没有使用AH Formatter,则需要为左侧和右侧页面分别使用fo:simple-page-master。每个fo:region-body需要具有不同的region-name。两个fo:region-body的宽度都必须足以满足常规{{11}}的宽度(如果您不是伪造品,则要使用的宽度)加上两个页面的装订边距,再加上(看起来像)普通页面上的fo:region-body

在左侧页面的fo:region-body中,将fo:region-body设置为负值,该值等于两个装订线宽度加上相对的margin-right的标称宽度。对右侧页面fo:region-body的{​​{1}}进行类似的操作。

在您的margin-left中,生成两个fo:region-body,每个都有您的内容的副本。将其中一个指向左侧页面上的fo:page-sequence,将另一个指向右侧页面上的fo:flow

一切都很好,您将能够使用相同的换行符和分页符来格式化内容的两个副本。由于看不见溢出页面的内容,因此看起来就像是内容的一种版本。

除非您做更多的工作,否则您将破坏文档的可访问性,因为屏幕阅读器将要阅读内容的两个副本。通过将所有内容放在表中,您还将对可访问性造成可怕的后果。

如果您的内容包含ID,那么您需要确保仅生成每个ID中的一个,并且该ID在FO的版本上(如果用户跳至该页面,该版本将是可见的)。