2013-02-05 27 views
8

Z XSL-FO (FOP), udało mi się stworzyć link do PDF zewnętrznej:FOP XSL-FO Kotwica w zewnętrznym przeznaczenia

<fo:basic-link show-destination="new"> 
<xsl:attribute name="external-destination">foo.pdf</xsl:attribute> 
</fo:basic-link> 

Ale teraz chciałbym osiągnąć kotwicę w tym zewnętrzny PDF. Więc próbowałem zbudować coś takiego:

Niestety, po kliknięciu wygenerowanego linku pojawia się błąd. Próbuje otworzyć dokument foo.pdf% 23anchorId.

W moim pliku .fo, link jest poprawny z # ale # jest błędnie interpretowane podczas transformacji w PDFie.

Masz pomysł na rozwiązanie tego problemu?

Dzięki,

Johann

Odpowiedz

11

Na FOP mamy dwa łącza: wewnętrzne i zewnętrzne.

dla zewnętrznego można użyć:

<fo:basic-link 
    external-destination="url('http://www.paulmccartney.com')" 
    color="blue" text-decoration="underline"> 
    Paul McCartney 
    </fo:basic-link> 

i linki wewnętrzne są linki z jednego miejsca w dokumencie do innej lokalizacji w tym samym dokumencie. Istnieją dwa etapy tworzenia linków wewnętrznych:

Najpierw podaj unikalny identyfikator do połączonej lokalizacji. Identyfikatory są określane za pomocą atrybutu id. Wartość może być zakodowana lub wygenerowana. W poniższym przykładzie, używamy generate-id() Funkcja XSLT do generowania identyfikatorów:

<fo:block font-weight="bold" font-size="larger" 
id="{generate-id(.)}" break-before="page"> 
    <xsl:value-of select="."/> 
</fo:block> 

drugie Utwórz link do tej lokalizacji. Podobnie jak w przypadku linków zewnętrznych, z tagiem tworzone są linki wewnętrzne. Atrybut wewnętrzny-docelowy powinien być ustawiony na wartość identyfikatora w innym miejscu dokumentu.

<fo:basic-link internal-destination="{generate-id(.)}"> 
<xsl:value-of select="."/> 
</fo:basic-link> 

myślę, że brakowało na to 'url' słowo kluczowe 'external-przeznaczenia' atrybut

+0

Dzięki za odpowiedź navin. Wygląda na to, że nie mogę utworzyć łącza hybrydowego (zarówno zewnętrznego, jak i wewnętrznego). Poza tym, myślę, że nie muszę uwzględniać "url" w moim atrybucie, ponieważ chcę utworzyć łącze do pliku PDF znajdującego się w tym samym folderze. – Johann