The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

PDF::API2::Annotation - Add annotations to a PDF

SYNOPSIS

my $pdf = PDF::API2->new();
my $font = $pdf->font('Helvetica');
my $page1 = $pdf->page();
my $page2 = $pdf->page();

my $content = $page1->text();
my $message = 'Go to Page 2';
my $size = 18;
$content->distance(1 * 72, 9 * 72);
$content->font($font, $size);
$content->text($message);

my $annotation = $page1->annotation();
my $width = $content->text_width($message);
$annotation->rect(1 * 72, 9 * 72, 1 * 72 + $width, 9 * 72 + $size);
$annotation->link($page2);

$pdf->save('sample.pdf');

METHODS

Annotation Types

$annotation = $annotation->link($destination, $location, @args);

Link the annotation to another page in this PDF. $location and @args are optional and set which part of the page should be displayed, as defined in "destination" in PDF::API2::NamedDestination.

$destination can be either a PDF::API2::Page object or the name of a named destination defined elsewhere.

url

$annotation = $annotation->uri($uri);

Launch $uri -- typically a web page -- when the annotation is selected.

file

$annotation = $annotation->launch($file);

Open $file when the annotation is selected.

pdf

$annotation = $annotation->pdf($file, $page_number, $location, @args);

Open the PDF file located at $file to the specified page number. $location and @args are optional and set which part of the page should be displayed, as defined in "destination" in PDF::API2::NamedDestination.

text

$annotation = $annotation->text($text);

Define the annotation as a text note with the specified content.

movie

$annotation = $annotation->movie($filename, $content_type);

Embed and link to the movie located at $filename with the specified MIME type.

Common Annotation Attributes

rect

$annotation = $annotation->rect($llx, $lly, $urx, $ury);

Define the rectangle around the annotation.

border

$annotation = $annotation->border($h_radius, $v_radius, $width);

Define the border style. Defaults to 0, 0, 0 (no border).

content

$annotation = $annotation->content(@lines);

Define the text content of the annotation, if applicable.

open

$annotation = $annotation->open($boolean);

Set the annotation to initially be either open or closed. Only relevant for text annotations.