r4775 - in /packages/libpdf-reuse-barcode-perl: ./ branches/ branches/upstream/ branches/upstream/current/ tags/

vdanjean at users.alioth.debian.org vdanjean at users.alioth.debian.org
Wed Jan 24 16:12:00 CET 2007


Author: vdanjean
Date: Wed Jan 24 16:12:00 2007
New Revision: 4775

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=4775
Log:
[svn-inject] Installing original source of libpdf-reuse-barcode-perl

Added:
    packages/libpdf-reuse-barcode-perl/
    packages/libpdf-reuse-barcode-perl/branches/
    packages/libpdf-reuse-barcode-perl/branches/upstream/
    packages/libpdf-reuse-barcode-perl/branches/upstream/current/
    packages/libpdf-reuse-barcode-perl/branches/upstream/current/Barcode.pm
    packages/libpdf-reuse-barcode-perl/branches/upstream/current/Changes
    packages/libpdf-reuse-barcode-perl/branches/upstream/current/MANIFEST
    packages/libpdf-reuse-barcode-perl/branches/upstream/current/Makefile.PL
    packages/libpdf-reuse-barcode-perl/branches/upstream/current/README
    packages/libpdf-reuse-barcode-perl/branches/upstream/current/test.pl
    packages/libpdf-reuse-barcode-perl/tags/

Added: packages/libpdf-reuse-barcode-perl/branches/upstream/current/Barcode.pm
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libpdf-reuse-barcode-perl/branches/upstream/current/Barcode.pm?rev=4775&op=file
==============================================================================
--- packages/libpdf-reuse-barcode-perl/branches/upstream/current/Barcode.pm (added)
+++ packages/libpdf-reuse-barcode-perl/branches/upstream/current/Barcode.pm Wed Jan 24 16:12:00 2007
@@ -1,0 +1,977 @@
+package PDF::Reuse::Barcode;
+
+use 5.006;
+use PDF::Reuse;
+use strict;
+use warnings;
+
+our $VERSION = '0.05';
+
+my ($str, $xsize, $ysize, $height, $sPtn, @sizes, $length, $value, %default);
+
+sub init
+{  %default   = ( value           => '0000000',
+                  x               => 0,
+                  y               => 0,
+                  size            => 1,
+                  xsize           => 1,
+                  ysize           => 1,
+                  rotate          => 0,
+                  background      => '1 1 1',
+                  drawbackground  => 1,
+                  text            => 'yes',
+                  prolong         => 0,
+                  hide_asterisk   => 0,
+                  mode            => 'Type3');
+   $str    = '';
+   $xsize  = 1;
+   $ysize  = 1;
+   $height = 37;
+   $sPtn   = '';
+   @sizes  = ();
+   $length = 0;
+   $value  = '' 
+}
+
+
+sub general1
+{  $default{'xsize'} = 1 unless ($default{'xsize'} != 0);
+   $default{'ysize'} = 1 unless ($default{'ysize'} != 0);
+   $default{'size'}  = 1 unless ($default{'size'}  != 0);
+   $xsize = $default{'xsize'} * $default{'size'};
+   $ysize = $default{'ysize'} * $default{'size'};
+   $str  = "q\n";
+   $str .= "$xsize 0 0 $ysize $default{'x'} $default{'y'} cm\n";
+   if ($default{'rotate'} != 0)
+   {   my $radian = sprintf("%.6f", $default{'rotate'} / 57.2957795);    # approx. 
+       my $Cos    = sprintf("%.6f", cos($radian));
+       my $Sin    = sprintf("%.6f", sin($radian));
+       my $negSin = $Sin * -1;
+       $str .= "$Cos $Sin $negSin $Cos 0 0 cm\n";
+   }
+}
+
+sub general2
+{  $length     = 20 + (length($sPtn) * 0.9);
+   my $height  = 38;
+   my $step    = 9;
+   my $prolong = 0;
+   if ($default{'prolong'} > 1)
+   {  $prolong  = $default{'prolong'};
+      $height  = 26 + ($prolong * 12); 
+   }
+   if ($default{'drawbackground'})
+   {   $str .= "$default{'background'} rg\n";
+       $str .= "0 0 $length $height re\n";  
+       $str .= 'f*' . "\n";
+       $str .= "0 0 0 rg\n";
+   }
+
+   prAdd($str);
+    
+   @sizes = prFontSize(12);
+
+   if ($default{'mode'} eq 'Type3')
+   {  prBar( 10, $step, $sPtn);
+   } 
+   else  # graphic mode 
+   {  $str = Bar( 10, $step, $sPtn);
+   }
+
+   $prolong--;
+   
+   if ($prolong > 0)
+   {   $sPtn =~ s/G/1/go;
+       while ($prolong > 0)
+       {  if ($prolong > 1)
+          {   $prolong--;
+              $step += 12;
+          }
+          else
+          {   $step += (12 * $prolong);
+              $prolong = 0;
+          }
+          if ($default{'mode'} eq 'Type3')
+          {  prBar( 10, $step, $sPtn);
+          } 
+          else   # graphic mode
+          {  $str .= Bar( 10, $step, $sPtn);
+          }
+       }
+    }
+    # print the graphic mode bars
+    if ($default{'mode'} ne 'Type3')
+    {   $str .= "B\n";    
+        prAdd($str);
+    }  
+
+}
+
+sub general3
+{  $str = "Q\n";
+   prAdd($str);
+   prFontSize($sizes[1]);
+}
+
+sub standardEnd
+{  general2();
+
+   if ($default{'text'})
+   {   my @vec = prFont('C');
+       prFontSize(10);
+       my $textLength = length($value) * 6;
+       my $start = ($length - $textLength) / 2;
+       prText($start, 1.5, $value);
+       prFont($vec[3]);
+    }
+   general3();
+   
+   1;
+}
+
+sub Bar
+{  my ($x, $y, $pattern) = @_;
+   my $yEnd = $y + 20;
+   my $yG   = $y - 3;
+
+   my $string = "0.92 w\n 0 0 0 RG\n";
+   for (split(//, $pattern))
+   {   if ($_ eq '1')
+       {  $string .= "$x $yEnd m\n $x $y l\n";
+       }
+       elsif($_ eq 'G')
+       {  $string .= "$x $yEnd m\n $x $yG l\n";
+       }  
+       $x += 0.91;
+   }
+   return $string;
+}
+
+sub Code128
+{  eval 'require Barcode::Code128';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = Barcode::Code128->new();
+   if (! $oGDBar)
+   {  die "The translation of $value to barcodes didn't succeed, aborts\n";
+   }
+   else
+   {  
+      $sPtn = $oGDBar->barcode($value);
+      $sPtn =~ tr/#/1/;
+      $sPtn =~ tr/ /0/;
+   }
+   standardEnd();
+   1;
+}
+
+
+sub Code39
+{  eval 'require GD::Barcode::Code39';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = GD::Barcode::Code39->new($value);
+   if (! $oGDBar)
+   {  die "$GD::Barcode::Code39::errStr\n";
+   }
+   else
+   {  $sPtn = $oGDBar->barcode();
+   }
+   if ($default{hide_asterisk})
+   {  $value =~ s/^\*//;
+      $value =~ s/\*$//;
+   }
+   standardEnd();
+   1;
+}
+
+sub COOP2of5
+{  eval 'require GD::Barcode::COOP2of5';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = GD::Barcode::COOP2of5->new($value);
+   if (! $oGDBar)
+   {  die "$GD::Barcode::COOP2of5::errStr\n";
+   }
+   else
+   {  $sPtn = $oGDBar->barcode();
+   }
+
+   standardEnd();
+   1;
+}
+
+sub IATA2of5
+{  eval 'require GD::Barcode::IATA2of5';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = GD::Barcode::IATA2of5->new($value);
+   if (! $oGDBar)
+   {  die "$GD::Barcode::IATA2of5::errStr\n";
+   }
+   else
+   {  $sPtn = $oGDBar->barcode();
+   }
+
+   standardEnd();
+   1;
+
+}
+
+sub Industrial2of5
+{  eval 'require GD::Barcode::Industrial2of5';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = GD::Barcode::Industrial2of5->new($value);
+   if (! $oGDBar)
+   {  die "$GD::Barcode::Industrial2of5::errStr\n";
+   }
+   else
+   {  $sPtn = $oGDBar->barcode();
+   }
+
+   standardEnd();
+   1;
+}
+
+sub Matrix2of5
+{  eval 'require GD::Barcode::Matrix2of5';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = GD::Barcode::Matrix2of5->new($value);
+   if (! $oGDBar)
+   {  die "$GD::Barcode::Matrix2of5::errStr\n";
+   }
+   else
+   {  $sPtn = $oGDBar->barcode();
+   }
+
+   standardEnd();
+   1;
+}
+
+sub NW7
+{  eval 'require GD::Barcode::NW7';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = GD::Barcode::NW7->new($value);
+   if (! $oGDBar)
+   {  die "$GD::Barcode::NW7::errStr\n";
+   }
+   else
+   {  $sPtn = $oGDBar->barcode();
+   }
+
+   standardEnd();
+   1;
+}
+
+
+
+sub EAN13
+{  eval 'require GD::Barcode::EAN13';
+   init();
+   my %param = @_;
+   for (keys %param)
+   {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+    $value = $default{'value'};
+
+    general1();
+
+    if ($value =~ m'([^0-9]+)'o)
+    {  die "Invalid character $1, aborts\n";
+    }
+
+    if (length($value) == 12)
+    {  $value .= GD::Barcode::EAN13::calcEAN13CD($value);
+    }
+    my $oGDBar = GD::Barcode::EAN13->new($value);
+    if (! $oGDBar)
+    {  die "$GD::Barcode::EAN13::errStr\n";
+    }
+    else
+    {  $sPtn = $oGDBar->barcode();
+    }
+    general2();
+
+    if ($default{'text'})
+    {   my $siffra = substr($value, 0, 1);
+        my $del1   = substr($value, 1, 6);
+        my $del2   = substr($value, 7, 6);
+
+        my @vec = prFont('C');
+
+        prFontSize(10);
+   
+        prText(1, 2, $siffra);
+        prText(14, 2, $del1);
+        prText(56, 2, $del2);
+
+        prFont($vec[3]);
+     }
+     general3;
+     1;
+}
+
+sub EAN8
+{  eval 'require GD::Barcode::EAN8';
+   init();
+   my %param = @_;
+   for (keys %param)
+   {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+    $value = $default{'value'};
+
+    general1();
+
+    if ($value =~ m'([^0-9]+)'o)
+    {  die "Invalid character $1, aborts\n";
+    }
+
+    if (length($value) == 7)
+    {  $value .= GD::Barcode::EAN8::calcEAN8CD($value);
+    }
+    my $oGDBar = GD::Barcode::EAN8->new($value);
+    if (! $oGDBar)
+    {  die "$GD::Barcode::EAN8::errStr\n";
+    }
+    else
+    {  $sPtn = $oGDBar->barcode();
+    }
+    general2();
+
+    if ($default{'text'})
+    {   my $del1   = substr($value, 0, 4);
+        my $del2   = substr($value, 4, 4);
+        my @vec = prFont('C');
+        prFontSize(10);
+        prText(14, 2, $del1);
+        prText(42.5, 2, $del2);
+        prFont($vec[3]);
+    }
+    general3;
+    1;
+}
+
+sub ITF
+{  eval 'require GD::Barcode::ITF';
+   init();
+   my %param = @_;
+   for (keys %param)
+    {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+     $value = $default{'value'};
+
+   general1();
+
+   my $oGDBar = GD::Barcode::ITF->new($value);
+   if (! $oGDBar)
+   {  die "$GD::Barcode::ITF::errStr\n";
+   }
+   else
+   {  $sPtn = $oGDBar->barcode();
+   }
+
+   standardEnd();
+   1;
+}
+
+sub UPCA
+{  eval 'require GD::Barcode::UPCA';
+   init();
+   my %param = @_;
+   for (keys %param)
+   {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+    $value = $default{'value'};
+
+    general1();
+
+    if ($value =~ m'([^0-9]+)'o)
+    {  die "Invalid character $1, aborts\n";
+    }
+
+    if (length($value) == 11)
+    {  $value .= GD::Barcode::UPCA::calcUPCACD($value);
+    }
+    my $oGDBar = GD::Barcode::UPCA->new($value);
+    if (! $oGDBar)
+    {  die "$GD::Barcode::UPCA::errStr\n";
+    }
+    else
+    {  $sPtn = $oGDBar->barcode();
+    }
+    general2();
+
+  if ($default{'text'})
+   {   my $siffra1 = substr($value, 0, 1);
+       my $del1    = substr($value, 1, 5);
+       my $del2    = substr($value, 6, 5);
+       my $siffra2 = substr($value, 11, 1);
+
+       my @vec = prFont('C');
+
+       prFontSize(10);
+   
+       prText(2, 2, $siffra1);
+       prText(20, 2, $del1);
+       prText(56, 2, $del2);
+       prText(97, 2, $siffra2);
+
+       prFont($vec[3]);
+    }
+    general3;
+    1;
+}
+
+sub UPCE
+{  eval 'require GD::Barcode::UPCE';
+   init();
+   my %param = @_;
+   for (keys %param)
+   {   my $lc = lc($_); 
+        if (exists $default{$lc})
+        {  $default{$lc} = $param{$_}; 
+        }
+        else
+        {  print STDERR "Unknown parameter $_ , not used \n";
+        }
+    }
+    $value = $default{'value'};
+
+    general1();
+
+    if ($value =~ m'([^0-9]+)'o)
+    {  die "Invalid character $1, aborts\n";
+    }
+
+    if (length($value) == 6)
+   {  $value  = '0' . $value;
+      my $cd  = GD::Barcode::UPCE::calcUPCECD($value);
+      $value .= $cd; 
+   }
+   elsif (length($value) == 7)
+   {  my $cd  = GD::Barcode::UPCE::calcUPCECD($value);
+      $value .= $cd;
+   }
+    my $oGDBar = GD::Barcode::UPCE->new($value);
+    if (! $oGDBar)
+    {  die "$GD::Barcode::UPCE::errStr\n";
+    }
+    else
+    {  $sPtn = $oGDBar->barcode();
+    }
+    general2();
+
+  if ($default{'text'})
+   {   my $siffra = substr($value, 0, 1);
+       my $del1   = substr($value, 1, 6);
+       my $del2   = substr($value, 7, 1);
+
+       my @vec = prFont('C');
+
+       prFontSize(10);
+   
+       prText(2, 2, $siffra);
+       prText(14, 2, $del1);
+       prText(58, 2, $del2);
+
+       prFont($vec[3]);
+    }
+    general3;
+    1;
+}
+
+
+1;
+
+
+__END__
+
+
+=head1 NAME
+
+PDF::Reuse::Barcode - Create barcodes for PDF documents with PDF::Reuse
+
+=head1 SYNOPSIS
+
+   use PDF::Reuse;
+   use PDF::Reuse::Barcode;
+   use strict;
+
+   prFile('bars.pdf');
+     
+   PDF::Reuse::Barcode::ITF (x       => 70,
+                             y       => 530,
+                             value   => '0123456789',
+                             prolong => 2.96);
+               
+   prEnd();
+
+=head1 DESCRIPTION
+
+This is a sub-module to PDF::Reuse. It creates barcode "images" to be used in
+PDF documents. It uses GD::Barcode and its sub-modules: GD::Barcode::Code39,
+COOP2of5, EAN13 and so on, to calculate the barcode pattern. For Code128 it uses
+Barcode::Code128.
+
+Normally the barcodes are displayed on a white background and with the characters
+under the bars. You can rotate the "image", make it smaller or bigger, prolong the
+bars and change the background.
+(But then, don't forget to test that your barcode scanner still understands it.)
+
+If you don't change the size of the "image", the bars are approximately 24 pixels
+high (the guard bars a few pixels longer) and the box/background is 38 pixels high
+and something like 20 pixels wider than the barcodes. The text under the bars are
+10 pixels high.
+
+The barcodes are generated using a Type3 font by default. Ghostscript and xpdf 
+don'thave support for Type3 fonts. If you want to target engines that don't 
+handle Type3 fonts properly, see the "mode" parameter. 
+
+=head1 FUNCTIONS
+
+All functions are called in a similar way. Just replace 'ITF' in the example
+under SYNOPSIS with some other function name and let the value parameter follow
+the rules of that function.
+
+=head2 Code128
+
+Creates Code128 barcodes with the help of Barcode::Code128. Look at that module
+for further information.
+
+  # code128.pl
+   
+  use PDF::Reuse;
+  use PDF::Reuse::Barcode;
+  prFile('code128.pdf');
+  PDF::Reuse::Barcode::Code128(x     => 100,
+                               y     => 730,
+                               value => '00000123455555555558');
+  prEnd();
+
+
+The constants CodeA, FNC1, SHIFT and so on, are not imported, but if you really
+need them (??), try to use the character values instead.
+
+  CodeA      0xf4        CodeB      0xf5         CodeC      0xf6
+  FNC1       0xf7        FNC2       0xf8         FNC3       0xf9
+  FNC4       0xfa        Shift      0xfb         StartA     0xfc
+  StartB     0xfd        StartC     0xfe         Stop       0xff
+
+  # unusual.pl
+  
+  # Instead of FCN1
+
+  use PDF::Reuse;
+  use PDF::Reuse::Barcode;
+  prFile('unusual.pdf');
+  PDF::Reuse::Barcode::Code128(x     => 100,
+                               y     => 430,
+                               value => chr(0xf7) . '00000123455555555558',
+                               text  => 0 );
+
+   # Font and font size has to be chosen
+   # Text could be put manually at x => 110 
+   #                               y => 431
+   # The size, xSize, ySize and rotation doesn't influence the text
+   # in this case ...
+
+  prEnd();
+
+
+=head2 Code39
+
+Translates the characters 0-9, A-Z, '-', '*', '+', '$', '%', '/', '.' and ' '
+to a barcode pattern. 
+
+In Code39, the asterisk is used as the start and stop bar, but PDF::Reuse::Barcode 
+expects you to supply the asterisks. If you do not want them to display in the
+text version, pass the option "hide_asterisk" as in 
+
+    PDF::Reuse::Barcode::Code39 (x             => 10,
+                                 y             => 20,
+                                 value         => '*62002*',
+                                 hide_asterisk => 1);
+
+=head2 COOP2of5
+
+Creates COOP2of5 barcodes from a string consisting of the numeric characters 0-9
+
+=head2 EAN13
+
+Creates EAN13 barcodes from a string of 12 or 13 digits. 
+The check number (the 13:th digit) is calculated if not supplied. 
+If there is given check number it is not controlled.
+
+=head2 EAN8
+
+Translates a string of 7 or 8 digits to EAN8 barcodes.
+The check number (the 8:th digit) is calculated if not supplied. If there is
+given check number it is not controlled.
+
+=head2 IATA2of5
+
+Creates IATA2of5 barcodes from a string consisting of the numeric characters 0-9
+
+=head2 Industrial2of5
+
+Creates Industrial2of5 barcodes from a string consisting of the numeric characters 0-9
+
+=head2 ITF
+
+Translates the characters 0-9 to a barcodes. These barcodes
+could also be called 'Interleaved2of5'.
+
+=head2 Matrix2of5
+
+Creates Matrix2of5 barcodes from a string consisting of the numeric characters 0-9
+
+=head2 NW7
+
+Creates a NW7 barcodes from a string consisting of the numeric characters 0-9
+
+=head2 UPCA
+
+Translates a string of 11 or 12 digits to UPCA barcodes. The check number (the 12:th 
+digit) is calculated if not supplied. If there is given check number it is not 
+controlled.
+
+=head2 UPCE
+
+Translates a string of 6, 7 or 8 digits to UPCE barcodes. If the string is 6 digits
+long, '0' is added first in the string. The check number (the 8:th digit) is
+calculated if not supplied. If there is given check number it is not controlled.
+
+=head1 COMMON PARAMETERS
+
+All functions accepts these parameters. 
+The parameters should be put in a hash.  
+All of them are optional, except 'value'. 
+
+=head2 value
+
+A string of characters which will be translated to barcodes. 
+
+=head2 x
+
+Number of pixels along the x-axis where to put the lower left "corner" of the 
+barcode image.
+
+=head2 y
+
+Number of pixels along the y-axis where to put the lower left "corner" of the 
+barcode image.
+
+=head2 size
+
+A (decimal) number. If you define a number for this parameter, all sizes along
+the x- and y-axes will multiplied by this number. Also the text under the bars
+will be scaled.
+
+=head2 xSize
+
+A (decimal) number. If you define a number for this parameter, all sizes along
+the x-axis will multiplied by this number. The text under the bars are also
+affected.
+
+=head2 ySize
+
+A (decimal) number. If you define a number for this parameter, all sizes along
+the y-axis will multiplied by this number. The text under the bars are also
+affected.
+
+=head2 prolong
+
+0 or a decimal number greater than 1. Prolongs the bars with this factor.
+In reality tells the module to prolong the bars by repeatedly rewriting the barcode
+pattern.
+
+=head2 text
+
+Normally this parameter is 'yes', which will cause the digits to be written as
+text under the barcodes. If this parameter is '' or 0, the text will be suppressed.
+
+=head2 drawBackground
+
+By default this parameter is 1, which will cause the barcodes to be drawn on
+a prepared background. If this parameter is '' or 0, the current background
+will be used, and the module will not try change it.
+
+=head2 background
+
+Normally it is '1 1 1', which will draw a white background/box around the barcodes.
+Choose another RGB-combination if you want another color.
+
+=head2 rotate
+
+A degree to rotate the barcode image counter-clockwise
+
+=head2 mode
+
+Defaults to 'Type3', which means that a Type3 font will be embedded in the PDF
+document and then used to print the barcodes. Type3 fonts are not supported by
+some PDF interpreters, namely Ghostscript and xpdf. 
+
+Set the mode to 'graphic' (currently, any string that doesn't match 'Type3' will
+do, but you should not count on this) to get graphic bars that work on all 
+engines.
+
+=head1 EXAMPLE
+
+  use PDF::Reuse;
+  use PDF::Reuse::Barcode;
+  use strict;
+
+  prFile('bars.pdf');
+
+  #################################################################
+  # First a rectangle is drawn in the upper part of the page
+  #################################################################
+
+  my $str = "q\n";                    # save the graphic state
+  $str   .= "0.9 0.5 0.5 rg\n";       # a fill color
+  $str   .= "10 400 440 410 re\n";    # a rectangle
+  $str   .= "b\n";                    # fill (and a little more)
+  $str   .= "Q\n";                    # restore the graphic state
+
+  prAdd($str);
+
+  #################################
+  # An image with prolonged bars, 
+  #################################
+      
+  PDF::Reuse::Barcode::ITF (x       => 50,
+                            y       => 700,
+                            value   => '0123456789',
+                            prolong => 2.96);
+
+  #############################
+  # A magnified barcode image
+  #############################
+  PDF::Reuse::Barcode::EAN13 (x       => 250,
+                              y       => 700,
+                              value   => '012345678901',
+                              size    => 1.5);
+
+  ####################################################################
+  # "Graphic" barcodes. (The others on this page use a special font)
+  ####################################################################
+
+  PDF::Reuse::Barcode::EAN13 (x       => 250,
+                              y       => 600,
+                              value   => '012345678901',
+                              size    => 1.5,
+                              mode    => 'graphic');
+
+  ######################################################
+  # A barcode image magnified a little along the y-axis
+  ######################################################
+
+  PDF::Reuse::Barcode::EAN8 (x       => 150,
+                             y       => 500,
+                             value   => '0123456',
+                             ySize   => 1.2);
+
+  ################################
+  # With the box in a light color
+  ################################
+
+  PDF::Reuse::Barcode::Code39 (x             => 70,
+                               y             => 300,
+                               value         => '*THIS IS SOMETHING*',
+                               background    => '0.99 0.97 0.97',
+                               hide_asterisk => 1);
+
+  #############################################
+  # With everything expanded along the x-axis
+  #############################################
+
+  PDF::Reuse::Barcode::NW7 (x     => 70,
+                            y     => 100,
+                            value => '012345678901',
+                            xSize => 2);
+
+  #################################################
+  # An image, 90 degrees rotated, might look 
+  # strange on the screen, should be ok as printed
+  #################################################
+
+  PDF::Reuse::Barcode::UPCA (x              => 400,
+                             y              => 100,
+                             value          => '12345678901',
+                             drawBackground => 0,
+                             rotate         => 90);
+
+  prEnd();
+
+
+
+=head1 LIMITATION
+
+EAN13, EAN8, UPCA and UPCE have "guard" bars. These, a little longer bars, are often
+a little blurred at the lower ends when they are displayed on a screen. If you
+magnify the image, the lines are displayed correctly. When you print the image
+there shouldn't be any problem, if you use at least 600 dpi.
+
+Also rotated barcodes might look strange on a screen. Most often they are much 
+better as printed on paper. Try to use "size" rather than "prolong", when you have
+a rotated barcode "image". (If it has been rotated 90 or 270 degrees, you can make
+the bars longer with the help of xSize.)    
+
+=head1 SEE ALSO
+
+These modules are used for calculation of the barcode pattern
+
+   Barcode::Code128
+   GD::Barcode
+   GD::Barcode::Code39
+   GD::Barcode::COOP2of5
+   GD::Barcode::EAN13
+   GD::Barcode::EAN8
+   GD::Barcode::IATA2of5
+   GD::Barcode::Industrial2of5
+   GD::Barcode::ITF
+   GD::Barcode::Matrix2of5
+   GD::Barcode::NW7
+   GD::Barcode::UPCA
+   GD::Barcode::UPCE
+
+=head1 AUTHOR
+
+Lars Lundberg, elkelund at worldonline.se
+
+=head1 THANKS TO
+
+Everyone who has helped me with corrections and ideas, Martin Langhoff among others.
+And of course credits to Kawai Takanori and William R. Ward who have written the
+modules for calculating the barcode patterns.
+
+=head1 COPYRIGHT
+
+Copyright (C) 2003 - 2004 Lars Lundberg, Solidez HB. All rights reserved.
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+=head1 DISCLAIMER
+
+You get this module free as it is, but nothing is guaranteed to work, whatever 
+implicitly or explicitly stated in this document, and everything you do, 
+you do at your own risk - I will not take responsibility 
+for any damage, loss of money and/or health that may arise from the use of this module!

Added: packages/libpdf-reuse-barcode-perl/branches/upstream/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libpdf-reuse-barcode-perl/branches/upstream/current/Changes?rev=4775&op=file
==============================================================================
--- packages/libpdf-reuse-barcode-perl/branches/upstream/current/Changes (added)
+++ packages/libpdf-reuse-barcode-perl/branches/upstream/current/Changes Wed Jan 24 16:12:00 2007
@@ -1,0 +1,20 @@
+Revision history for Perl extension PDF::Reuse::Barcode.
+
+0.05 Wed Jan 21 2004
+     Added "mode" parameter for purely "graphic" bars. 
+     Credits to Martin Langhoff for this.
+
+0.04 Thu Jan 15 2004
+     Added the new parameter 'hide_asterisk' for Code39. 
+     Credits to Martin Langhoff for this.
+
+0.03  Fri Nov 21 2003
+     Improved precision in the "formula" for rotation
+
+0.02  Tue June 10
+     Added support for Code128 by using Barcode::Code128
+
+0.01  Tue Jun  3 09:13:50 2003
+	- original version; created by h2xs 1.21 with options
+		-AXn PDF::Reuse::Barcode
+

Added: packages/libpdf-reuse-barcode-perl/branches/upstream/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libpdf-reuse-barcode-perl/branches/upstream/current/MANIFEST?rev=4775&op=file
==============================================================================
--- packages/libpdf-reuse-barcode-perl/branches/upstream/current/MANIFEST (added)
+++ packages/libpdf-reuse-barcode-perl/branches/upstream/current/MANIFEST Wed Jan 24 16:12:00 2007
@@ -1,0 +1,6 @@
+Barcode.pm
+Changes
+Makefile.PL
+MANIFEST
+README
+test.pl

Added: packages/libpdf-reuse-barcode-perl/branches/upstream/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libpdf-reuse-barcode-perl/branches/upstream/current/Makefile.PL?rev=4775&op=file
==============================================================================
--- packages/libpdf-reuse-barcode-perl/branches/upstream/current/Makefile.PL (added)
+++ packages/libpdf-reuse-barcode-perl/branches/upstream/current/Makefile.PL Wed Jan 24 16:12:00 2007
@@ -1,0 +1,22 @@
+use 5.006;
+use ExtUtils::MakeMaker;
+WriteMakefile(
+    'NAME'	       	=> 'PDF::Reuse::Barcode',
+    'VERSION_FROM'	=> 'Barcode.pm', 
+    'PREREQ_PM'		=> {    PDF::Reuse                  => 0,
+                             GD::Barcode                 => 0,
+                             GD::Barcode::Code39         => 0,
+                             GD::Barcode::COOP2of5       => 0,
+                             GD::Barcode::EAN13          => 0,
+                             GD::Barcode::EAN8           => 0,
+                             GD::Barcode::IATA2of5       => 0,
+                             GD::Barcode::Industrial2of5 => 0,
+                             GD::Barcode::ITF            => 0,
+                             GD::Barcode::Matrix2of5     => 0,
+                             GD::Barcode::NW7            => 0,
+                             GD::Barcode::UPCA           => 0,
+                             GD::Barcode::UPCE           => 0,
+                             Barcode::Code128            => 0},
+    ($] >= 5.005 ?    ## Add these new keywords supported since 5.005
+      (AUTHOR     => 'Lars Lundberg elkelund at worldonline.se') : ()),
+);

Added: packages/libpdf-reuse-barcode-perl/branches/upstream/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libpdf-reuse-barcode-perl/branches/upstream/current/README?rev=4775&op=file
==============================================================================
--- packages/libpdf-reuse-barcode-perl/branches/upstream/current/README (added)
+++ packages/libpdf-reuse-barcode-perl/branches/upstream/current/README Wed Jan 24 16:12:00 2007
@@ -1,0 +1,61 @@
+PDF/Reuse/Barcode version 0.05
+==============================
+
+This is a sub-module to PDF::Reuse. It creates barcode "images" to be used in
+PDF documents. It uses GD::Barcode and its sub-modules: GD::Barcode::Code39,
+COOP2of5, EAN13 and so on to calculate the barcode pattern.
+If you want Code128-barcodes you need Barcode::Code128.
+Normally the barcodes are displayed on a white background and with the characters
+under the bars. You can rotate the "image", make it smaller or bigger, prolong the
+bars and change the background.
+(But then, don't forget to test that your scanner still understands it.)
+
+
+INSTALLATION
+
+To install this module in a Windows environment:
+   
+   perl Makefile.PL
+   nmake
+   nmake test
+   nmake install
+
+(If you haven't got nmake, try to download it via
+http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe)
+
+
+Under other operating systems try the following:
+
+   perl Makefile.PL
+   make
+   make test
+   make install
+
+
+DEPENDENCIES
+
+This module requires these other modules:
+
+   PDF::Reuse
+   GD::Barcode   
+   GD::Barcode::Code39
+   GD::Barcode::COOP2of5
+   GD::Barcode::EAN13
+   GD::Barcode::EAN8
+   GD::Barcode::IATA2of5
+   GD::Barcode::Industrial2of5
+   GD::Barcode::ITF
+   GD::Barcode::Matrix2of5
+   GD::Barcode::NW7
+   GD::Barcode::UPCA
+   GD::Barcode::UPCE
+   Barcode::Code128
+
+COPYRIGHT AND LICENCE
+
+Copyright (C) 2003 - 2004 Lars Lundberg, Solidez HB
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+

Added: packages/libpdf-reuse-barcode-perl/branches/upstream/current/test.pl
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libpdf-reuse-barcode-perl/branches/upstream/current/test.pl?rev=4775&op=file
==============================================================================
--- packages/libpdf-reuse-barcode-perl/branches/upstream/current/test.pl (added)
+++ packages/libpdf-reuse-barcode-perl/branches/upstream/current/test.pl Wed Jan 24 16:12:00 2007
@@ -1,0 +1,34 @@
+use Test;
+BEGIN { plan tests => 15 };
+use PDF::Reuse;
+ok(1);
+use GD::Barcode;
+ok(2);
+ok(find('GD::Barcode::Code39'));
+ok(find('GD::Barcode::COOP2of5'));
+ok(find('GD::Barcode::EAN13'));
+ok(find('GD::Barcode::EAN8'));
+ok(find('GD::Barcode::IATA2of5'));
+ok(find('GD::Barcode::Industrial2of5'));
+ok(find('GD::Barcode::ITF'));
+ok(find('GD::Barcode::Matrix2of5'));
+ok(find('GD::Barcode::NW7'));
+ok(find('GD::Barcode::UPCA'));
+ok(find('GD::Barcode::UPCE'));
+ok(find('Barcode::Code128'));
+use PDF::Reuse::Barcode;
+ok(14);
+
+sub find
+{  $modul = shift;
+   my $status = '';
+   eval "use $modul;";
+   if ($@)
+   {  print STDERR "Can't find $modul - can't produce those barcodes \n";
+   }
+   else
+   {  $status = "$modul found";
+   }
+   return $status;
+}
+




More information about the Pkg-perl-cvs-commits mailing list