module Prawn::Document::Annotations
Provides very low-level support for annotations. These extensions are mainly for use by prawn-format, so be sure to check that out if all you need is basic internal or external links.
Public Instance Methods
Source
# File lib/prawn/document/annotations.rb, line 23 def annotate(options) page.dictionary.data[:Annots] ||= [] options = sanitize_annotation_hash(options) page.dictionary.data[:Annots] << ref!(options) return options end
Adds a new annotation (section 8.4 in PDF spec) to the current page. options
must be a Hash describing the annotation.
Source
# File lib/prawn/document/annotations.rb, line 46 def link_annotation(rect, options={}) options = options.merge(:Subtype => :Link, :Rect => rect) annotate(options) end
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).
Source
# File lib/prawn/document/annotations.rb, line 34 def text_annotation(rect, contents, options={}) options = options.merge(:Subtype => :Text, :Rect => rect, :Contents => contents) annotate(options) end
A convenience method for creating Text
annotations. rect
must be an array of four numbers, describing the bounds of the annotation. contents
should be a string, to be shown when the annotation is activated.
Private Instance Methods
Source
# File lib/prawn/document/annotations.rb, line 53 def sanitize_annotation_hash(options) options = options.merge(:Type => :Annot) if options[:Dest].is_a?(String) options[:Dest] = Prawn::LiteralString.new(options[:Dest]) end options end