#!/usr/bin/perl use strict; use warnings; use PDF::API2; use PDF::Table; use Data::Dump 'pp'; # Start PDF Process my $pdf = PDF::API2->new(-file => "test.pdf"); #A4 Landscap $pdf->mediabox('Letter'); my $page = $pdf->page; # font settings my $font_size = 12; my $fnt = $pdf->corefont('Helvetica',-encode => 'latin1'); my $boldfont = $pdf->corefont('Helvetica-Bold',-encode => 'latin1'); my $fnt_t = $pdf->corefont('Times-Roman',-encode => 'latin1'); my $boldfont_t = $pdf->corefont('Times-Bold',-encode => 'latin1'); my $txt = $page->text(); #my $txt_under = $page->text(-underline => 'auto'); my $top = 700; my $left_margin = 50; my $left_margin_a = 100; $txt->textstart; # First Underlined sentence $txt->font($fnt,11); $txt->translate( 50, $top-147 ); $txt->text( "Mauris rutrum luctus rhoncus.", -underline => 'auto'); # SEcond Underlined sentence $txt->font($fnt,11); $txt->translate( 345, $top-147 ); $txt->text( "vel est at, tincidunt accumsan velit.", -underline => 'auto'); my $block = $page->text(); $block->translate( 50, $top-100); $block->font($fnt,11); $block->lead(16); $block->section("Aliquam vitae ipsum id felis finibus congue. Ut molestie scelerisque purus, sit amet rhoncus leo aliquet ac. In eu lobortis quam. Maecenas auctor semper enim, ut convallis sapien dictum eu. Sed arcu ex, ornare et porttitor vitae, interdum a mi. Quisque velit quam, convallis Fusce ut metus ut which may either exceed \$1,000.00 or OK. G. LAT, semper nunc, in dictum magna. Aliquam ac vestibulum dolor. Praesent in magna nisi. Cras nec viverra ligula. Suspendisse efficitur imperdiet eros, XXsed rhoncus sapien euismod cursus. Vestibulum a posuereYY elit, eget tristique eros. Etiam et lectus venenatis, aliquet dui vitae, posuere lectus.", 400, 500); =code ### START OPTION my $new_lines = "Aliquam vitae ipsum id felis finibus congue. Ut molestie scelerisque purus, sit amet rhoncus leo aliquet ac. In eu lobortis quam. Maecenas auctor semper enim, ut convallis sapien dictum eu. Sed arcu ex, ornare et porttitor vitae, interdum a mi. Mauris rutrum luctus rhoncus. Quisque velit quam, convallis vel est at, tincidunt accumsan velit. Fusce ut metus ut which may either exceed \$1,000.00 or OK. G. LAT, semper nunc, in dictum magna. Aliquam ac vestibulum dolor. Praesent in magna nisi. Cras nec viverra ligula. Suspendisse efficitur imperdiet eros, XXsed rhoncus sapien euismod cursus. Vestibulum a posuereYY elit, eget tristique eros. Etiam et lectus venenatis, aliquet dui vitae, posuere lectus."; my @lines = split/\n/, $new_lines; my $y = $top - 162; # reading the text line by line, I am marking the text I need to be underlined with ... my $ul_flag=0; for my $rows (@lines) { $txt->font($fnt,11); $txt->translate( $left_margin,$y); # only split into parts lines than have at least one tag # if ( $rows =~ // ) { # the capture brackets in split retain and # as an separate element in @parts my @parts = split /(<\/?u>)/,$rows; for (@parts) { if (//) { $ul_flag = 1; next; }; if (/<\/u>/){ $ul_flag = 0; next; }; if ($ul_flag){ $txt->text($_,-underline => 'auto'); } else { $txt->text($_); } } } else { $txt->text($rows); } $y-=17; } #### END OPTION =cut $txt->textend; $pdf->save; $pdf->end( );