Module: PDF::Core::Annotations

Included in:
Prawn::Document
Defined in:
lib/pdf/core/annotations.rb

Overview

Provides very low-level support for annotations.

Instance Method Summary collapse

Instance Method Details

#annotate(options) ⇒ Object

Adds a new annotation (section 8.4 in PDF spec) to the current page. options must be a Hash describing the annotation.



18
19
20
21
22
23
# File 'lib/pdf/core/annotations.rb', line 18

def annotate(options)
  state.page.dictionary.data[:Annots] ||= []
  options = sanitize_annotation_hash(options)
  state.page.dictionary.data[:Annots] << ref!(options)
  return 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).



41
42
43
44
# File 'lib/pdf/core/annotations.rb', line 41

def link_annotation(rect, options={})
  options = options.merge(:Subtype => :Link, :Rect => rect)
  annotate(options)
end

#text_annotation(rect, contents, options = {}) ⇒ Object

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.



29
30
31
32
# File 'lib/pdf/core/annotations.rb', line 29

def text_annotation(rect, contents, options={})
  options = options.merge(:Subtype => :Text, :Rect => rect, :Contents => contents)
  annotate(options)
end