| Lines 7-12
          use Text::Wrap             qw( wrap );
      
      
        Link Here | 
        
          | 7 | use Algorithm::CheckDigits qw( CheckDigits ); | 7 | use Algorithm::CheckDigits qw( CheckDigits ); | 
        
          | 8 | use Text::CSV_XS; | 8 | use Text::CSV_XS; | 
        
          | 9 | use Text::Bidi qw( log2vis ); | 9 | use Text::Bidi qw( log2vis ); | 
            
              |  |  | 10 | use GD::Barcode::Code39; | 
        
          | 10 |  | 11 |  | 
        
          | 11 | use C4::Context; | 12 | use C4::Context; | 
        
          | 12 | use C4::Biblio qw( GetMarcFromKohaField ); | 13 | use C4::Biblio qw( GetMarcFromKohaField ); | 
  
    | Lines 526-534
          sub barcode {
      
      
        Link Here | 
        
          | 526 |     my $hide_text      = 'yes'; | 527 |     my $hide_text      = 'yes'; | 
        
          | 527 |  | 528 |  | 
        
          | 528 |     if ( $params{'barcode_type'} =~ m/CODE39/ ) { | 529 |     if ( $params{'barcode_type'} =~ m/CODE39/ ) { | 
            
              | 529 |         $bar_length     = '17.5'; |  |  | 
            
              | 530 |         $tot_bar_length = ( $bar_length * $num_of_bars ) + ( $guard_length * 2 ); | 
            
              | 531 |         $x_scale_factor = ( $params{'width'} / $tot_bar_length ); | 
        
          | 532 |         if ( $params{'barcode_type'} eq 'CODE39MOD' ) { | 530 |         if ( $params{'barcode_type'} eq 'CODE39MOD' ) { | 
        
          | 533 |             my $c39 = CheckDigits('code_39');    # get modulo43 checksum | 531 |             my $c39 = CheckDigits('code_39');    # get modulo43 checksum | 
        
          | 534 |             $params{'barcode_data'} = $c39->complete( $params{'barcode_data'} ); | 532 |             $params{'barcode_data'} = $c39->complete( $params{'barcode_data'} ); | 
  
    | Lines 538-543
          sub barcode {
      
      
        Link Here | 
        
          | 538 |             $hide_text = ''; | 536 |             $hide_text = ''; | 
        
          | 539 |         } | 537 |         } | 
        
          | 540 |         eval { | 538 |         eval { | 
            
              |  |  | 539 |             #NOTE: Barcode length algorithm comes from PDF::Reuse::Barcode | 
            
              | 540 |             #NOTE: 20 is arbitrary padding added to the barcode background by PDF::Reuse::Barcode | 
            
              | 541 |             my $oGdB                 = GD::Barcode::Code39->new("*$params{'barcode_data'}*"); | 
            
              | 542 |             my $whole_barcode_length = ( length( $oGdB->barcode() ) * 0.9 ) + 20; | 
            
              | 543 |             $x_scale_factor = ( $params{'width'} / $whole_barcode_length ); | 
        
          | 541 |             PDF::Reuse::Barcode::Code39( | 544 |             PDF::Reuse::Barcode::Code39( | 
        
          | 542 |                 x             => $params{'llx'}, | 545 |                 x             => $params{'llx'}, | 
        
          | 543 |                 y             => $params{'lly'}, | 546 |                 y             => $params{'lly'}, | 
            
              | 544 | -  |  |  |