$line_width += $arg{'indent'};
}
- # Lets take from paragraph as many words as we can put into $width - $indent;
- while ( @paragraph and $text_object->advancewidth( join("\x20", @line)."\x20" . $paragraph[0]) + $line_width < $width ) {
+ # Lets take from paragraph as many words as we can put into $width - $indent;. Always take at least one word; otherwise we'd end up in an infinite loop.
+ while (!scalar(@line) || (@paragraph && ($text_object->advancewidth( join("\x20", @line)."\x20" . $paragraph[0]) + $line_width < $width))) {
push(@line, shift(@paragraph));
}
$line_width += $text_object->advancewidth(join('', @line));
if ($remaining_header_rows) {
$remaining_header_rows--;
} else {
- $row_cnt++;
+ $row_cnt++ unless $do_leftovers;
}
}# End of while(scalar(@{$data}) and $cur_y-$row_h > $bot_marg)
The text_block() method is a slightly modified copy of the one from
Rick Measham's PDF::API2 tutorial at
http://pdfapi2.sourceforge.net/cgi-bin/view/Main/YourFirstDocument
+update: The tutorial is no longer available. Please visit http://pdfapi2.sourceforge.net .
by Desislav Kamenov