use strict; use warnings; use feature 'say'; use CAM::PDF; my $fn = 'inlineimage.pdf'; my $pdf = CAM::PDF-> new( $fn ) or die; my $pagenum = 1; my $content = $pdf-> getPageContent( $pagenum ); # say $content; # exit; $content =~ s{ (?<= \s ) ( /\S+ ) \s+ Do (?= \s ) }{ my $obj = $pdf-> dereference( $1, $pagenum ); delete $obj-> { value }{ value }{ Length }; $pdf-> writeInlineImage( $obj ); }gxse; delete $pdf-> getPage( $pagenum ) -> { Resources }{ value }{ XObject }; $pdf-> cleanse; $pdf-> setPageContent( 1, $content ); $fn =~ s/\.pdf$/+$&/i; $pdf-> cleanoutput( $fn );