PDF格式的XSL-FO超链接-打印视图打开-天线室

PDF格式的XSL-FO超链接-打印视图打开-天线室,pdf,xsl-fo,antenna-house,Pdf,Xsl Fo,Antenna House,我正在生成带有链接的PDF文件,并希望在PDF查看器中查看它们时与打印它们时的显示方式不同。查看链接时,链接周围应有蓝色边框,但打印时不应有边框 我使用的是Antenna House Formatter v6.3,并且知道您可以使用axf:layer设置和axf:layer来创建层并控制这些层的打印和查看行为。但我没有成功实现上述行为(我只能使整个链接在打印中消失,而不仅仅是边框) 是否有任何方法可以使用天线室扩展或其他方法在通过XSL-FO和格式化引擎生成的PDF中创建链接,以便在视图和打印中

我正在生成带有链接的PDF文件,并希望在PDF查看器中查看它们时与打印它们时的显示方式不同。查看链接时,链接周围应有蓝色边框,但打印时不应有边框

我使用的是Antenna House Formatter v6.3,并且知道您可以使用axf:layer设置和axf:layer来创建层并控制这些层的打印和查看行为。但我没有成功实现上述行为(我只能使整个链接在打印中消失,而不仅仅是边框)


是否有任何方法可以使用天线室扩展或其他方法在通过XSL-FO和格式化引擎生成的PDF中创建链接,以便在视图和打印中具有不同的外观?

试试这个。根据您的字体,您可能需要调整
基线偏移量
值:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
  xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
  axf:layer-settings="'layer4' view off print on,'layer5' view on print off export off">
...
<fo:block space-before="1em">abcd <fo:inline-container alignment-baseline="baseline" baseline-shift="-3pt">
    <fo:block-container position="absolute" axf:layer="layer5">
        <fo:block>
            <fo:basic-link border="thin solid blue" alignment-baseline="baseline" external-destination="http://www.antennahouse.com/">Antenna House</fo:basic-link>
        </fo:block>
    </fo:block-container>
    <fo:block-container axf:layer="layer4">
        <fo:block>
            <fo:basic-link border="thin solid transparent" external-destination="http://www.antennahouse.com/">Antenna House</fo:basic-link>
        </fo:block>
    </fo:block-container>
</fo:inline-container> efgh</fo:block>

...
abcd
天线室
天线室
efgh

需要PDF 1.5或更高版本。请参见试试这个。根据您的字体,您可能需要调整
基线偏移量
值:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
  xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
  axf:layer-settings="'layer4' view off print on,'layer5' view on print off export off">
...
<fo:block space-before="1em">abcd <fo:inline-container alignment-baseline="baseline" baseline-shift="-3pt">
    <fo:block-container position="absolute" axf:layer="layer5">
        <fo:block>
            <fo:basic-link border="thin solid blue" alignment-baseline="baseline" external-destination="http://www.antennahouse.com/">Antenna House</fo:basic-link>
        </fo:block>
    </fo:block-container>
    <fo:block-container axf:layer="layer4">
        <fo:block>
            <fo:basic-link border="thin solid transparent" external-destination="http://www.antennahouse.com/">Antenna House</fo:basic-link>
        </fo:block>
    </fo:block-container>
</fo:inline-container> efgh</fo:block>

...
abcd
天线室
天线室
efgh

需要PDF 1.5或更高版本。请看

让我给你回电话。应该可以将文本的两个版本叠加在一起,例如,作为
fo:inline container
中相对定位的两个块(前提是链接中没有换行符)。非常感谢,链接将不包含任何换行符:)让我回给你。可以将文本的两个版本叠加在一起,例如,作为
fo:inline container
中相对定位的两个块(前提是链接中没有换行符)。非常感谢,链接将不包含任何换行符:)就像一个符咒。当将最外层的
fo:block
设置为
“居中”或
“右”
时,结果会变得有点奇怪。这两层似乎互相偏移了。你知道为什么,甚至在使用
text align=“right”
时,是否有办法在两层之上生成这两个层吗?这很有魅力。将最外层
fo:block
设置为
“center”
“right”
时,结果会有点奇怪。这两层似乎互相偏移了。即使使用
text align=“right”
,您是否知道为什么以及是否有一种方法可以在两个图层的顶部生成这两个图层?