18

RubyonRailsアプリで生成されたPDFにリンクを埋め込む必要があります。エビでこれを行う方法はありますか?

これについて読むと、しばらくの間、エビのフォーマットが答えであったことがわかりましたが、0.7.xはこれを破りました。

prawn-formatは、このlink_annotate(rect, options={})関数を使用してリンクを作成します。PDFにリンクを作成するには、これにどのようなオプションを渡す必要がありますか?

編集:
誰かが持っているなら、これが行われるコード例を見たいです。

4

4 に答える 4

26

これは古い質問であることは知っていますが、まだつまずいている人のために、現在のバージョンの Prawn では、次のようなインライン形式を使用できます。

pdf.text "Website: <link href='http://www.stackoverflow.com'>stackoverflow</link>", :inline_format => true
于 2013-05-07T17:46:23.187 に答える
11

たとえば、外部ページ(http://google.com)へのリンクを作成しようとしている場合は、次を使用して、ページの左下から5、5に配置された100x100のリンクを配置できます。 、1pxの境界線付き:

pdf.link_annotation([100, 100, 5, 5], :Border => [0,0,1], :A => { :Type => :Action, :S => :URI, :URI => Prawn::LiteralString.new("http://google.com") } )

Prawn Formatは、pdf.textメソッドに渡されたテキストを解析し、htmlにタグを見つけます。次に、正規表現を使用してターゲットとリンクテキストを解析し、最後に、タグ内のテキストの周囲に収まるバウンディングボックス(最初のパラメーター)を使用して、上記のようなリンクを作成します。エビフォーマットなしでこれをどのように達成できるかわかりません。しかし、それがlink_annotationを使用してリンクを作成する方法です。

于 2010-02-23T05:57:43.917 に答える
1

Prawn 0.7 の時点で、prawn-format は完全にサポートされておらず、Prawn 0.7+ のバージョンでは動作しません。もちろん、気軽にフォークして修正して ください - github の prawn-format のホームページ

もう 1 つのオプションは、エビの組み込みの低レベル注釈サポートを使用することです: http://prawn.majesticseacreature.com/docs/prawn-core/classes/Prawn/Document/Annotations.html#M000158

メソッドは次のとおりです。

link_annotation(rect, options={})

リンク注釈を作成するための便利なメソッド。rect は、注釈の境界を表す 4 つの数値の配列でなければなりません。オプション ハッシュには、:Dest (通常はドキュメントの Dests ツリーに記録されている文字列としてターゲットの宛先を記述)、または :A (リンクをクリックしたときに実行するアクションを記述)、または :PA (説明用) のいずれかを含める必要があります。リンク先の URL)。

于 2010-02-08T12:04:37.957 に答える