View | Details | Raw Unified | Return to bug 18550
Collapse All | Expand All

(-)a/C4/Patroncards/Patroncard.pm (-15 / +17 lines)
Lines 210-215 sub draw_text { Link Here
210
    warn sprintf('No pdf object passed in.') and return -1 if !$pdf;
210
    warn sprintf('No pdf object passed in.') and return -1 if !$pdf;
211
    my @card_text = ();
211
    my @card_text = ();
212
    return unless (ref($self->{'layout'}->{'text'}) eq 'ARRAY'); # just in case there is not text
212
    return unless (ref($self->{'layout'}->{'text'}) eq 'ARRAY'); # just in case there is not text
213
213
    my $text = [@{$self->{'layout'}->{'text'}}]; # make a copy of the arrayref *not* simply a pointer
214
    my $text = [@{$self->{'layout'}->{'text'}}]; # make a copy of the arrayref *not* simply a pointer
214
    while (scalar @$text) {
215
    while (scalar @$text) {
215
        my $line = shift @$text;
216
        my $line = shift @$text;
Lines 231-238 sub draw_text { Link Here
231
            $line = join(' ',@orig_line);
232
            $line = join(' ',@orig_line);
232
        }
233
        }
233
        my $text_attribs = shift @$text;
234
        my $text_attribs = shift @$text;
234
        my $origin_llx = $self->{'llx'} + $text_attribs->{'llx'};
235
        my $origin_llx = $self->{'llx'} + $text_attribs->{'llx'} * $self->{'unitvalue'};
235
        my $origin_lly = $self->{'lly'} + $text_attribs->{'lly'};
236
        my $origin_lly = $self->{'lly'} + $text_attribs->{'lly'} * $self->{'unitvalue'};
236
        my $Tx = 0;     # final text llx
237
        my $Tx = 0;     # final text llx
237
        my $Ty = $origin_lly;   # final text lly
238
        my $Ty = $origin_lly;   # final text lly
238
        my $Tw = 0;     # final text word spacing. See http://www.adobe.com/devnet/pdf/pdf_reference.html ISO 32000-1
239
        my $Tw = 0;     # final text word spacing. See http://www.adobe.com/devnet/pdf/pdf_reference.html ISO 32000-1
Lines 270-277 sub draw_text { Link Here
270
                    $string_width = C4::Creators::PDF->StrWidth($line, $text_attribs->{'font'}, $text_attribs->{'font_size'});
271
                    $string_width = C4::Creators::PDF->StrWidth($line, $text_attribs->{'font'}, $text_attribs->{'font_size'});
271
                    #$font_units_width = $m->string_width($line);
272
                    #$font_units_width = $m->string_width($line);
272
                    #$string_width = ($font_units_width * $text_attribs->{'font_size'}) / $units_per_em;
273
                    #$string_width = ($font_units_width * $text_attribs->{'font_size'}) / $units_per_em;
273
                    if (($string_width + $text_attribs->{'llx'}) < $self->{'width'}) {
274
                    if ( $string_width + ( $text_attribs->{'llx'} * $self->{'unitvalue'} ) < $self->{'width'}) {
274
                        ($Tx, $Tw) = text_alignment($origin_llx, $self->{'width'}, $text_attribs->{'llx'}, $string_width, $line, $text_attribs->{'text_alignment'});
275
                        ($Tx, $Tw) = text_alignment($origin_llx, $self->{'width'}, $text_attribs->{'llx'} * $self->{'unitvalue'}, $string_width, $line, $text_attribs->{'text_alignment'});
275
                        $line =~ s/^\s+//g;     # strip naughty leading spaces
276
                        $line =~ s/^\s+//g;     # strip naughty leading spaces
276
                        push @lines, {line=> $line, Tx => $Tx, Ty => $Ty, Tw => $Tw};
277
                        push @lines, {line=> $line, Tx => $Tx, Ty => $Ty, Tw => $Tw};
277
                        last WRAP_LINES;
278
                        last WRAP_LINES;
Lines 280-286 sub draw_text { Link Here
280
            }
281
            }
281
        }
282
        }
282
        else {
283
        else {
283
            ($Tx, $Tw) = text_alignment($origin_llx, $self->{'width'}, $text_attribs->{'llx'}, $string_width, $line, $text_attribs->{'text_alignment'});
284
            ($Tx, $Tw) = text_alignment($origin_llx, $self->{'width'}, $text_attribs->{'llx'} * $self->{'unitvalue'}, $string_width, $line, $text_attribs->{'text_alignment'});
284
            $line =~ s/^\s+//g;     # strip naughty leading spaces
285
            $line =~ s/^\s+//g;     # strip naughty leading spaces
285
            push @lines, {line=> $line, Tx => $Tx, Ty => $Ty, Tw => $Tw};
286
            push @lines, {line=> $line, Tx => $Tx, Ty => $Ty, Tw => $Tw};
286
        }
287
        }
Lines 297-303 sub draw_text { Link Here
297
            else {
298
            else {
298
                $box_height += $text_attribs->{'font_size'};
299
                $box_height += $text_attribs->{'font_size'};
299
            }
300
            }
300
            box ($origin_llx, $box_lly, $self->{'width'} - $text_attribs->{'llx'}, $box_height, $pdf);
301
            box ($origin_llx, $box_lly, $self->{'width'} - ( $text_attribs->{'llx'} * $self->{'unitvalue'} ), $box_height, $pdf);
301
        }
302
        }
302
        $pdf->Font($text_attribs->{'font'});
303
        $pdf->Font($text_attribs->{'font'});
303
        $pdf->FontSize($text_attribs->{'font_size'});
304
        $pdf->FontSize($text_attribs->{'font_size'});
Lines 315-325 sub draw_image { Link Here
315
    my ($self, $pdf) = @_;
316
    my ($self, $pdf) = @_;
316
    warn sprintf('No pdf object passed in.') and return -1 if !$pdf;
317
    warn sprintf('No pdf object passed in.') and return -1 if !$pdf;
317
    my $images = $self->{'layout'}->{'images'};
318
    my $images = $self->{'layout'}->{'images'};
319
318
    PROCESS_IMAGES:
320
    PROCESS_IMAGES:
319
    foreach my $image (keys %$images) {
321
    foreach my $image (keys %$images) {
320
        next PROCESS_IMAGES if $images->{$image}->{'data_source'}->[0]->{'image_source'} eq 'none';
322
        next PROCESS_IMAGES if $images->{$image}->{'data_source'}->[0]->{'image_source'} eq 'none';
321
        my $Tx = $self->{'llx'} + $images->{$image}->{'Tx'};
323
        my $Tx = $self->{'llx'} + $images->{$image}->{'Tx'} * $self->{'unitvalue'};
322
        my $Ty = $self->{'lly'} + $images->{$image}->{'Ty'};
324
        my $Ty = $self->{'lly'} + $images->{$image}->{'Ty'} * $self->{'unitvalue'};
323
        warn sprintf('No image passed in.') and next if !$images->{$image}->{'data'};
325
        warn sprintf('No image passed in.') and next if !$images->{$image}->{'data'};
324
        my $intName = $pdf->AltJpeg($images->{$image}->{'data'},$images->{$image}->{'Sx'}, $images->{$image}->{'Sy'}, 1, $images->{$image}->{'alt'}->{'data'},$images->{$image}->{'alt'}->{'Sx'}, $images->{$image}->{'alt'}->{'Sy'}, 1);
326
        my $intName = $pdf->AltJpeg($images->{$image}->{'data'},$images->{$image}->{'Sx'}, $images->{$image}->{'Sy'}, 1, $images->{$image}->{'alt'}->{'data'},$images->{$image}->{'alt'}->{'Sx'}, $images->{$image}->{'alt'}->{'Sy'}, 1);
325
        my $obj_stream = "q\n";
327
        my $obj_stream = "q\n";
Lines 338-343 sub draw_image { Link Here
338
sub _draw_barcode {   # this is cut-and-paste from Label.pm because there is no common place for it atm...
340
sub _draw_barcode {   # this is cut-and-paste from Label.pm because there is no common place for it atm...
339
    my $self = shift;
341
    my $self = shift;
340
    my %params = @_;
342
    my %params = @_;
343
341
    my $x_scale_factor = 1;
344
    my $x_scale_factor = 1;
342
    my $num_of_chars = length($params{'barcode_data'});
345
    my $num_of_chars = length($params{'barcode_data'});
343
    my $tot_bar_length = 0;
346
    my $tot_bar_length = 0;
Lines 357-364 sub _draw_barcode { # this is cut-and-paste from Label.pm because there is no Link Here
357
        }
360
        }
358
        eval {
361
        eval {
359
            PDF::Reuse::Barcode::Code39(
362
            PDF::Reuse::Barcode::Code39(
360
                x                   => $params{'llx'},
363
                x                   => $params{'llx'} * $self->{'unitvalue'},
361
                y                   => $params{'lly'},
364
                y                   => $params{'lly'} * $self->{'unitvalue'},
362
                value               => "*$params{barcode_data}*",
365
                value               => "*$params{barcode_data}*",
363
                xSize               => $x_scale_factor,
366
                xSize               => $x_scale_factor,
364
                ySize               => $params{'y_scale_factor'},
367
                ySize               => $params{'y_scale_factor'},
Lines 377-384 sub _draw_barcode { # this is cut-and-paste from Label.pm because there is no Link Here
377
        $x_scale_factor = ($params{'width'} / $tot_bar_length) * 0.9;
380
        $x_scale_factor = ($params{'width'} / $tot_bar_length) * 0.9;
378
        eval {
381
        eval {
379
            PDF::Reuse::Barcode::COOP2of5(
382
            PDF::Reuse::Barcode::COOP2of5(
380
                x                   => $params{'llx'},
383
                x                   => $params{'llx'}* $self->{'unitvalue'},
381
                y                   => $params{'lly'},
384
                y                   => $params{'lly'}* $self->{'unitvalue'},
382
                value               => "*$params{barcode_data}*",
385
                value               => "*$params{barcode_data}*",
383
                xSize               => $x_scale_factor,
386
                xSize               => $x_scale_factor,
384
                ySize               => $params{'y_scale_factor'},
387
                ySize               => $params{'y_scale_factor'},
Lines 395-402 sub _draw_barcode { # this is cut-and-paste from Label.pm because there is no Link Here
395
        $x_scale_factor = ($params{'width'} / $tot_bar_length) * 0.9;
398
        $x_scale_factor = ($params{'width'} / $tot_bar_length) * 0.9;
396
        eval {
399
        eval {
397
            PDF::Reuse::Barcode::Industrial2of5(
400
            PDF::Reuse::Barcode::Industrial2of5(
398
                x                   => $params{'llx'},
401
                x                   => $params{'llx'}* $self->{'unitvalue'} ,
399
                y                   => $params{'lly'},
402
                y                   => $params{'lly'}* $self->{'unitvalue'},
400
                value               => "*$params{barcode_data}*",
403
                value               => "*$params{barcode_data}*",
401
                xSize               => $x_scale_factor,
404
                xSize               => $x_scale_factor,
402
                ySize               => $params{'y_scale_factor'},
405
                ySize               => $params{'y_scale_factor'},
403
- 

Return to bug 18550