ConventionManager: foreign_key Benennung
[kivitendo-erp.git] / modules / override / PDF / Table.pm
index 2dbcb98..81bf5d3 100644 (file)
@@ -135,8 +135,8 @@ sub text_block {
       $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));
@@ -334,6 +334,7 @@ sub table {
           $row->[$j] =~ s#(\b\S{$max_word_len}?)(\S.*?\b)# $1 $2#;
           $myone = 1 if ( defined $2 );
         } while( $myone );
+        $row->[$j] =~ s/^\s+//;
 
         $space_w             = $txt->advancewidth( "\x20" );
         $column_widths->[$j] = 0;
@@ -595,7 +596,7 @@ sub table {
         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)
 
@@ -980,6 +981,7 @@ Stone Environmental Inc. (www.stone-env.com).
 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