2017-10-12 28 views
0

pdfを作るためにファイルのxslを変更する必要があります。以前はAntennaHouseを使用していましたが、誰かがRenderXを使うべきだと決めました。だから私はレンダラ(XSL)でPDFブックマークを作る方法

<fo:block axf:outline-level="{$bookmark-level}" axf:outline-expand="false" axf:outline-title="{$bookmark-title}"> 
</fo:block> 

と同等のを見つける必要があり、私はそれをコンパイルし、RXにAXFを変更して試してみたが、何のブックマークがPDFで表示されません。

私も

<rx:outline> 
    <rx:bookmark internal-destination=""> 
     <rx:bookmark-label> 
      section 
     </rx:bookmark-label> 
    </rx:bookmark> 
</rx:outline> 

を使用してみました。しかし、この解決策はどちらか動作しません。

理想的には、xsl(これは現在xslファイル内に作成されている方法なので)にブックマークを散発的に作成したいと考えています。言い換えれば、私はxslファイルの開始時にすべてをやりたくはありません。

誰もが魂を持っていますか?

EDIT:として名前空間::

xmlns:rx="http://www.renderx.com/XSL/Extensions" 

あなたがにブックマークを指していない、私は少し

<fo:block id="section1">Section 1</fo:block> 
    <rx:outline> 
     <rx:bookmark internal-destination="section1"> 
      <rx:bookmark-label> 
       section 
      </rx:bookmark-label> 
     </rx:bookmark> 
    </rx:outline> 
+0

あなたのしおりとしても、それは私の問題を解決するためにも、私のPDFにしおりを示していない内部宛先とは先(内部宛先=「」) –

+0

@KevinBrownがないのでどこにも行きません。 –

+0

あなたはおそらくrx:名前空間を持っていません。このネームスペースをXSLに追加する必要があります。以下の回答を参照してください。私は名前空間を追加します –

答えて

0

まずに自分のコードを変更し

、あなたのXSLやFOは、RXを含める必要があります何でも内部目的地がありません。あなたが持っていた場合は、次以降の文書で

<rx:outline> 
<rx:bookmark internal-destination="section1"> 
    <rx:bookmark-label> 
     section 
    </rx:bookmark-label> 
</rx:bookmark> 
</rx:outline> 

をそして、何かのように:

<fo:block id="section1">Section 1</fo:block> 

そして、それが動作するはずです。通常、これらのidはgenerate-id()のような関数で生成されます。

http://www.renderx.com/tutorial.html#PDF_Bookmarks

ノートを参照してください、あなたはまた、名前空間を避け、XSL 1.1アウトライン構造を使用することができます。

<fo:bookmark-tree> = <rx:outline> 
<fo:bookmark> = <rx:bookmark> 
<fo:bookmark-title> = <rx:bookmark-label> 
+0

まだブックマークを持っていません。追加したコードで投稿を編集します。 –

+0

これらを散発的に文書に追加することはできません。 rx:outlineまたはfo:bookmark-treeに追加する必要があります。 –

+0

ああ...そうだ。答えをありがとう。私はAntennaHouseで行うことができるので、何か他のことを望んでいました。 –

関連する問題