xsltを使用してXMLからPDFを構築します。 pdfファイルでは、テーブル全体や一部の領域(背景色を持つブロックコンテナ)のようないくつかの領域でハイパーリンクを作成する必要があります。 < fo:basic-link external-destination = "http:// ..." >を使用しようとしましたが、成功しませんでした。これはテキストでは機能しますが、ブロックコンテナやテーブルでは機能しません。誰かがそれを行う方法を知っているなら、助けてください。私はSaxonとApache FOPを使用しています。fo:block-containerとfo:tableにハイパーリンクを作成するには?
答えて
fo:basic-link
(https://www.w3.org/TR/xsl11/#fo_basic-link)は、リンクを作成するための唯一のオプションです。あなたが見つけたように、fo:basic-link
は「インライン」FOです。 https://www.w3.org/TR/xsl11/#d0e6532
で%block;
と%inline;
のFOの分類を参照してください。ただし、fo:basic-link
は%block;
コンテンツを許可するように定義されているので、あなたはfo:basic-link
内fo:table
を置くことができるはずです。それでも解決しない場合はそれが「インライン」FOだともfo:basic-link
内で許さ以来
fo:block
fo:basic-link
fo:table
、しかし、あなたは、あなたのfo:table
fo:inline-container
内に置くことができる:すなわち、のように入れ子に使用します。あなたのフォーマッタが正しいことが別の質問ですが、両方の方法を動作するはずでしょうかどうか
fo:block
fo:basic-link
fo:inline-container
fo:table
:あなたは次のように入れ子の構造で終わるだろう。
@ TonyGrahamの答えはテーブルのために働いた。私のページのほとんどは少なくとも。いくつかのテーブルにはまだ問題がありますが、何らかの方法で解決できると思います。推奨されたソリューションは:
fo:block
fo:basic-link
fo:inline-container
fo:table
絶対配置されたブロックコンテナについては、私は別の解決策を考え出しました。この場合、いくつかの不便があり
<fo:block-container position="absolute" left="6.15cm" top="1.31cm" height="6cm" width="9.32cm" overflow="hidden">
<fo:block>
<fo:basic-link>
<xsl:attribute name="external-destination">
<xsl:text>url(</xsl:text>
<xsl:value-of select="$my-url"/>
<xsl:text>)</xsl:text>
</xsl:attribute>
<fo:instream-foreign-object>
<svg xmlns="http://www.w3.org/2000/svg" height="130" width="260" viewBox="0 0 260 130">
<text></text>
</svg>
</fo:instream-foreign-object>
</fo:basic-link>
</fo:block>
</fo:block-container>
:ジャストブロックコンテナの前に私は、空のSVGオブジェクト内のハイパーリンクを持つ別の同じ大きさ(も絶対位置で)ブロック・コンテナを作成しました。ポイントでSVGビューボックスのサイズを取得するために、私はInkscapeグラフィックエディタ(ブロックコンテナのサイズはセンチメータ単位)を使用しました。
- 1. MessageBox.showでハイパーリンクを作成するには?
- 2. テキストボックスコントロール内にハイパーリンクを作成する
- 3. スラックにハイパーリンクを作成する
- 4. ハイパーリンクを自動的に作成する
- 5. はRシャイニーヘッダーに画像ハイパーリンクを作成
- 6. 単一のfo:table-cellにxsl-foreachデータを表示するには?
- 7. HTMLで条件付きハイパーリンクを作成するには
- 8. C#コンソールアプリケーションでハイパーリンクを作成するには?
- 9. js domでハイパーリンクを作成する
- 10. Excelでハイパーリンクの列を作成する
- 11. Angularjsのハイパーリンクを作成する
- 12. MS Wordアドインでハイパーリンクを作成する
- 13. エクセルVBAアクティブセルのハイパーリンクを作成する
- 14. Pythonでハイパーリンクを作成する
- 15. PythonでExcelのハイパーリンクを作成する
- 16. テキストからハイパーリンクを作成する
- 17. Tkinterでハイパーリンクを作成する
- 18. VBAハイパーリンクと形状の作成
- 19. aFrame.ioハイパーリンクの作成とリンクのダウンロード
- 20. URLパスを表示せずにハイパーリンクを作成する方法
- 21. PDFを生成するときにfo:table内のテーブル行間のデフォルト間隔を削除/縮小する方法
- 22. Googleスプレッドシートにハイパーリンクを作成する方法
- 23. telerikグリッドの列にハイパーリンクを作成する方法
- 24. ハイパーリンクをクリックすると、ハイパーリンクにIE URLを追加するには
- 25. セルをUITableViewでハイパーリンクとして作成する方法
- 26. ASP.net GridView AllowSortingは見出しにハイパーリンクを作成しません
- 27. Htmlはハイパーリンクを作らずにクリック可能なテキストを作成します
- 28. jqueryの1つのハイパーリンクは、1つのハイパーは、ポップアップが開いたと同時にときに、他のハイパーリンク(バッチ)されてクリックした場合、私は、ユーザーとバッチ</p> <p>を作成して2つのハイパーリンクを作成している時
- 29. extjs4でハイパーリンクを作成する方法は?
- 30. ColdFusionでハイパーリンクを作成する方法は?
@TonyGrahamありがとうございます。私が以前に試した最初の勧告はうまくいかなかった。今私は "fo:inline-container"を使って2番目のものを試しています。このソリューションをテーブルに適用すると、次のページに完全に移動しました。テーブルにハイパーリンクがあります。それで、それは部分的に働いた。私は自分のテーブルに「キープ・アワン」を使用しませんでした。これで遊ぶ必要があるかもしれません。 ブロック位置が絶対位置(3垂直ブロック)のページにも適用されます。うまくいきませんでした。後で私は、このサイトが許すならば、私が期待したものと持っているものをアップロードします。 – Practician
'fo:inline-container'は1行だけを満たすように見え、1行は分割されません。 'block-progression-dimension.maximum = "100%" overflow = "repeat" ''(https://www.w3.org/TR/xsl11/#fo_inline-containerとhttps:// wwwを参照してください) .w3.org/TR/xsl11 /#overflow)、フォーマッタはこれらの条件の下で 'fo:inline-container'を破る可能性があります。書式設定モデルを実際に悪用したい場合は、固定列幅を使用している場合に限り、各表の行を別々の 'fo:inline-container'の別の表に置くことができます。 fo:block/fo:inline-container/fo:block-container/fo:tableを試すことができます。 –