Гиперссылки XSL-FO в PDF - Распечатка View On - Антенный дом

Я создаю PDF-файлы со ссылками и хочу, чтобы они отображались иначе при просмотре в программе просмотра PDF, чем при их печати. При просмотре ссылки должны иметь синюю рамку вокруг ссылки, а при печати границы не должно быть.

Я использую Antenna House Formatter v6.3 и знаю, что вы можете использовать axf:layer-settings и axf:layer для создания слоев и управления поведением печати и просмотра этих слоев. Но мне не удалось добиться описанного выше поведения (я могу заставить исчезнуть только всю ссылку в печати, а не только границу).

Есть ли способ использовать расширения Antenna House или какой-либо другой способ сделать ссылки в PDF, сгенерированные с помощью XSL-FO, и механизм форматирования, чтобы они выглядели по-разному при просмотре и печати?


person h.sundblad    schedule 23.10.2017    source источник
comment
Позвольте мне вернуться к вам. Это должно быть возможно путем наложения двух версий текста, например, в виде двух относительно расположенных блоков внутри fo:inline-container (при условии, что у вас нет разрывов строк внутри ссылок).   -  person Tony Graham    schedule 23.10.2017
comment
Буду очень признателен, ссылки не будут содержать разрывов строк :)   -  person h.sundblad    schedule 24.10.2017


Ответы (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

person Tony Graham    schedule 25.10.2017
comment
Работает как шарм. - person h.sundblad; 27.10.2017
comment
При установке text-align на самом внешнем fo:block либо на "center", либо на "right" результат становится немного странным. Два слоя как бы смещаются друг относительно друга. Есть ли у вас какие-либо идеи, почему и есть ли способ создать два слоя друг над другом даже при использовании text-align="right"? - person h.sundblad; 31.10.2017