#!/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( );