#!/usr/bin/perl use 5.032; use warnings; use strict; use PDF::API2; use Test::More tests => 2; my ($stringy_bare_pdf, $stringy_outline_pdf); BARE_PDF: { my $pdf = PDF::API2->new(-compress => 0); my $page1 = $pdf->page(); $stringy_bare_pdf = $pdf->to_string(); } OUTLINE: { my $pdf = PDF::API2->new(-compress => 0); my $page1 = $pdf->page(); my $outlines = $pdf->outlines(); my $outline = $outlines->outline(); $outline->title('Test Outline 1'); $outline->dest(1); $stringy_outline_pdf = $pdf->to_string(); } DELETE_OUTLINE: { my $pdf = PDF::API2->from_string($stringy_outline_pdf, -compress => 0) or die $!; my $root = $pdf->outlines(); my $outline = $root->outline(); $outline->delete(); is($pdf->to_string(), $stringy_bare_pdf, 'Make sure the outline actually got deleted from the PDF'); } MODIFY_OUTLINE: { my $pdf = PDF::API2->from_string($stringy_outline_pdf, -compress => 0) or die $!; my $root = $pdf->outlines(); my $outline = $root->outline(); $outline->title('Test Outline 2'); $outline->dest(1); is($pdf->to_string(), $stringy_outline_pdf, 'Make sure the outline text actually got changed in the PDF'); } done_testing();