X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=modules%2Foverride%2FPDF%2FTable.pm;h=602c88728d499a7653d32f6fec44a0a37b025c48;hb=ca247333e470aefad12228a8a17c7d76bc598c74;hp=f318495d55ba532222e9513a9a2ce307521f34b2;hpb=a2730e8a6ec97b2ad0c4184b38f6d846235d5f3b;p=kivitendo-erp.git diff --git a/modules/override/PDF/Table.pm b/modules/override/PDF/Table.pm index f318495d5..602c88728 100755 --- a/modules/override/PDF/Table.pm +++ b/modules/override/PDF/Table.pm @@ -134,8 +134,8 @@ sub text_block # Check if any text to display unless( defined( $text) and length($text) > 0 ) { - carp "Warning: No input text found. Trying to add dummy '-' and not to break everything.\n"; - $text = '-'; +# carp "Warning: No input text found. Trying to add dummy '-' and not to break everything.\n"; + $text = ' '; } # Strip any and Split the text into paragraphs @@ -463,7 +463,7 @@ sub table for( my $row_idx = 0; $row_idx < scalar(@$data) ; $row_idx++ ) { - push @header_row_widths, [] if $row_idx < $header_props->{num_header_rows}; + #push @header_row_widths, [] if $row_idx < $header_props->{num_header_rows}; my $column_widths = []; #holds the width of each column # Init the height for this row @@ -505,8 +505,12 @@ sub table $rows_height->[$row_idx] = $cell_font_size; } + if (!defined $data->[$row_idx][$column_idx]) { + $data->[$row_idx][$column_idx] = ' '; + } + # This should fix a bug with very long words like serial numbers etc. - if( $max_word_len > 0 ) + if( $max_word_len > 0 && $data->[$row_idx][$column_idx]) { $data->[$row_idx][$column_idx] =~ s#(\S{$max_word_len})(?=\S)#$1 #g; } @@ -614,11 +618,9 @@ sub table if( ref $header_props and $header_props->{'repeat'}) { - for my $idx (0 .. $header_props->{num_header_rows} - 1) { - unshift @$data, [ @{ $header_rows[$idx] } ]; - unshift @$row_col_widths, [ @{ $header_row_widths[$idx] } ]; - unshift @$rows_height, $header_row_heights[$idx]; - } + unshift @$data, @header_rows; + unshift @$row_col_widths, @header_row_widths; + unshift @$rows_height, @header_row_heights; $remaining_header_rows = $header_props->{num_header_rows}; $first_row = 1; } @@ -671,6 +673,11 @@ sub table # Row cell props - TODO in another commit + # Added to resolve infite loop bug with returned undef values + for(my $d = 0; $d < scalar(@{$record}) ; $d++) + { + $record->[$d] = ' ' unless( defined $record->[$d]); + } # Choose colors for this row $background_color = ($row_index - $header_props->{num_header_rows}) % 2 ? $background_color_even : $background_color_odd;