class HexaPDF::Layout::Style::LinkLayer


The LinkLayer class provides support for linking to in-document or remote destinations for Style objects using link annotations. Typical use cases would be linking to a (named) destination on a different page or executing a URI action.

See: PDF2.0 s12.5.6.5, Layers, HexaPDF::Type::Annotations::Link

Public Class Methods

new(dest: nil, uri: nil, file: nil, action: nil, border: false, border_color: nil)

Creates a new LinkLayer object.

The following arguments are allowed (note that only one of dest, uri, file or action may be specified):


The destination array or a name of a named destination for in-document links. If neither dest, uri, file nor action is specified, it is assumed that the box has a custom property named 'link' which is used for the destination.


The URI to link to.


The file that should be opened or, if it refers to an application, the application that should be launched. Can either be a string or a Filespec object. Also see: HexaPDF::Type::FileSpecification.


The PDF action that should be executed.


If set to true, a standard border is used. Also accepts an array that adheres to the rules for annotation borders.


Defines the border color. Can be an array with 0 (transparent), 1 (grayscale), 3 (RGB) or 4 (CMYK) values.

Examples: [page, :XYZ, nil, nil, nil], border: true) "", border: [5 5 2])     # use 'link' custom box property for dest

Public Instance Methods

call(canvas, box)

Creates the needed link annotation if possible, i.e. if the context of the canvas is a page.