use strict; use warnings; use PDF::API2; my $doc = PDF::API2-> open( 'sample.pdf' ); # Assuming it to have at least # 2 pages $doc-> outlines -> outline -> dest( $doc-> openpage( 1 )) # All this chaining is not -> title( '1st page') # really necessary, doing it -> parent # just for fun. -> outline -> title( '2nd page') -> open -> outline -> title( 'top of 2nd page' ) -> dest( $doc-> openpage( 2 ), '-xyz' => [ 0, 0, 0 ]) -> parent -> outline -> title( '2nd page, 500 pts from top edge' ) -> dest( $doc-> openpage( 2 ), '-xyz' => [ 0, 500, 0 ]); $doc-> preferences( '-outlines' => 1 ); $doc-> saveas( 'sample+.pdf' );