views:

429

answers:

3

I need to embed a link into a generated pdf in a ruby on rails app. Is there a way to do this with prawn?

Reading about this it turns out that prawn-format was the answer for awhile, but 0.7.x broke this.

prawn-format uses the link_annotate(rect, options={}) function to create links. What options need to be passed into this to get it to create a link in the PDF?

edit:
I would like to see a code example of this being done if anyone has one.

+1  A: 

As of Prawn 0.7, prawn-format is completely unsupported, and will not work with versions of Prawn 0.7+. Feel free to fork and fix, of course - prawn-format's homepage on github

The other option is to use prawn's built in low-level annotation support: http://prawn.majesticseacreature.com/docs/prawn-core/classes/Prawn/Document/Annotations.html#M000158

Heres the method:

link_annotation(rect, options={})

A convenience method for creating Link annotations. rect must be an array of four numbers, describing the bounds of the annotation. The options hash should include either :Dest (describing the target destination, usually as a string that has been recorded in the document‘s Dests tree), or :A (describing an action to perform on clicking the link), or :PA (for describing a URL to link to).

Do you know how to use this link_annotation function? If so, an example would useful.
lillq
+3  A: 

If you are attempting to create a link to an external page (http://google.com), for instance you could use the following, to place a link that is 100x100 and placed at 5, 5 from the bottom left of the page, with a 1px border:

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 would parse the text passed to the pdf.text method and find html a tags. It would then use regular expressions to parse out the target and link text and finally create a link like the one above with a bounding box (the first param) that would fit around the text that was within the tags. I'm not sure how you could achieve this without Prawn Format. But that is how you can create a link using link_annotation.

Chas Lemley
A: 

lik pdf.link_annotation(....

Can we place headers and footers on all pdf pages like

pdf.headers (which is not working though)

os is ther some other code structre?

You have a new question here and this would fit best in the stackoverflow site if you [Ask Question] with the button at the upper right.
lillq