2016-06-01 14 views
1

私はxsl-foを使用してイメージを描く必要があり、ユーザーはイメージのテキスト/特定の場所をクリックできる必要があります。これは、テキスト xsl-foのエリア属性座標が外部のグラフィック

  • が含まれています、私は画像
  • を持って、さらに

    • をそれを説明するために、私は、テキストが発生し、それらの座標のためのハイパーリンクを提供する必要がある場所の座標を持っています。

    テキストをクリックすると、PDFドキュメント内の別の場所に移動できるはずです。

    <area>タグで試したところ、座標は<fo:block>以内ですが、動作しません。次のように マイFoの構造は次のとおりです。

    <fo:block> <fo:external-graphic content-width="scale-to-fit" content-height="100%" width="100%" src="figures/test.png"/><area shape="rect" coords="148,147,195,162" <fo:basic-link>xyz</fo:basic-link></area> 
    </fo:block> 
    

    あなたは、誰もがこのような何かをしようとしているなら、私が知っているし、私を助けていただけますか?

  • +1

    ellipse素子を用いた場合でもPDFにクリック可能な領域が矩形である

  • 目に見えるマークを有さない矩形を完全に無視/廃棄したせいか、私はfill="none" stroke="none"を使用してみましたが、これは働いていませんでした私の知る限り、XSL-FOではimagemapに似たものはありません。 – potame

  • 答えて

    1

    XSL-FOははイメージマップ(HTMLでMAP要素に類似した何かを)持っていませんが、同じ結果を達成するために埋め込まれたSVGドキュメントを使用することが可能です。

    • image要素がaビューボックス
    • 文書の同じ大きさの、ビットマップ画像を配置:SVG文書内

      <fo:block> 
          <fo:instream-foreign-object> 
           <svg width="5cm" height="3cm" viewBox="0 0 5 3" version="1.1" 
            xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
            <image x="0" y="0" width="5" height="3" xlink:href="image.png"/> 
            <a xlink:href="http://www.w3.org"> 
             <rect x="1" y="2" width="3" height="1" 
               fill="#AAFFFF" stroke="none" opacity="0"/> 
            </a> 
           </svg> 
          </fo:instream-foreign-object> 
      </fo:block> 
      

      は、この例を見てください要素はリンク先を定義します
    • rect要素はa def内にありますINESクリッカブルエリア

    私はFOP 2.1でこの例をテストし、それが動作し、警告のカップルと:私はopacity="0"を使用クリッカブル矩形が完全に透明にするために

    • 。にSVGで
    +0

    上記の回答は役に立ちますが、属性を追加することはできません。私が追加すると、** "要素のの属性"幅 "が必要です" **したがって、私はを削除し、画像が生成されました。しかし、画像全体は、すべてのPDF画像とともにそこにあるように選択されます。画像の特定の部分は、ハイパーリンクを選択して提供することはできません。 –

    +0

    @DhineshM矩形(あなたの例では 'coords =" 148,147,195,162 ")の(x1、y1、x2、y2)座標を知っていれば、簡単にそれらを使って' x'、 'y'、' width 'width'はx2 - x1、' height'はy2 - y1である。 – lfurini

    +0

    @DhineshM実際には、座標原点の位置に依存します(SVG軸は左上隅に原点を持ち、正のxは右に、正のyは下にあります)。 'opacity =" 0.5 "'と設定した場合、四角形は半透明で、どこにあるかを知ることができ、その位置と大きさを正しい方法で計算していることを確認できます。 – lfurini

    関連する問題