Module: PDF::Core::Annotations

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.



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

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