PDF 中的 XSL-FO 超链接 - 打印关闭查看打开 - 天线之家
Posted
技术标签:
【中文标题】PDF 中的 XSL-FO 超链接 - 打印关闭查看打开 - 天线之家【英文标题】:XSL-FO Hyperlinks in PDF - Print Off View On - Antenna House 【发布时间】:2018-04-03 17:39:28 【问题描述】:我正在生成带有链接的 PDF 文件,并希望它们在 PDF 查看器中查看时的显示方式与打印时不同。查看链接时,链接周围应有蓝色边框,但打印时不应有边框。
我正在使用 Antenna House Formatter v6.3,并且知道您可以使用 axf:layer-settings 和 axf:layer 创建图层并控制这些图层的打印和查看行为。但是我没有成功实现上述行为(我只能让整个链接在打印中消失,而不仅仅是边框)。
有什么方法可以使用 Antenna House 扩展或其他方式在通过 XSL-FO 和格式化引擎生成的 PDF 中创建链接,以便在查看和打印时具有不同的外观?
【问题讨论】:
让我回复你。应该可以通过覆盖两个版本的文本来实现,例如,作为fo:inline-container
内的两个相对定位的块(前提是链接内没有换行符)。
非常感谢,链接不会包含任何换行符:)
【参考方案1】:
试试这个。您可能需要调整 baseline-shift
值,具体取决于您的字体:
<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>
需要 PDF 1.5 或更高版本。见https://www.antennahouse.com/product/ahf65/ahf-ext.html#pdf-layer
【讨论】:
像魅力一样工作。 当将最外层的fo:block
上的text-align
设置为"center"
或"right"
时,结果变得有点奇怪。这两层似乎相互抵消。您是否知道为什么以及是否有办法在使用text-align="right"
时生成两个图层?以上是关于PDF 中的 XSL-FO 超链接 - 打印关闭查看打开 - 天线之家的主要内容,如果未能解决你的问题,请参考以下文章
从子记录(或超链接)获取数据以在 netsuite 高级 html pdf 中打印