[Koha-devel] Problems with barcode generation

Michael Hafen mdhafen at x.washk12.org
Thu Aug 24 01:02:18 CEST 2006


I had the same problem.  To get the barcodes I had to use a different
function entirely.

I've actually made a lot of changes to this script, but I will post the
relevant bit for your benefit.

-------------  CUT  --------------

		my $zone = length($code) - 5;
		my $barcode = $pdf->xo_3of9(-font => $tr,	# The font object to use
					    -code => $code, # Text to codify
					    -ext  => 1,		# extended character set
					    -extn => '012345',	# Barcode extension (if it is aplicable)
					    -umzn => 9+$zone,	# Top limit of the finished bar
					    -lmzn => 9+$zone,	# Bottom limit of the finished bar
					    -zone => 3+$zone,	# Bars size
					    -quzn => 0,		# Space destinated for legend
					    -ofwt => 0.5,	# Bars width
					    -fnsz => 9,		# Font size
					    -text => ''
					    ); # umzn +, lmzn +, zone +7

		# Assigns a barcode to $gfx
		my $scale = ($labelConfig{'labelWidth'}-2)/$barcode->width();
		$gfx->formimage($barcode, $x, $y, $scale);
		# Assigns the additional information to the barcode (Legend)
		if ($text_under_label) {
		    my @lines = split("\n",$text_under_label);
		    $title = $lines[0];
		    $author = $lines[1];
		}
		while ($text->advancewidth($title) > ($labelConfig{'labelWidth'} - 2))
{
		    chop $title;
		}
		while ($text->advancewidth($author) > ($labelConfig{'labelWidth'} -
2)) {
		    chop $author;
		}

		my ($x_adjust_1, $x_adjust_2, $y_adjust) = (0, 0, 0);
		if ($text->advancewidth($title) < ($labelConfig{'labelWidth'} - 5)) {
		    $x_adjust_1 = (($labelConfig{'labelWidth'} - 2) -
$text->advancewidth($title)) / 2;
		}
		if ($text->advancewidth($author) < ($labelConfig{'labelWidth'} - 5)) {
		    $x_adjust_2 = (($labelConfig{'labelWidth'} - 2) -
$text->advancewidth($author)) / 2;
		}
		$y_adjust = ($labelConfig{'labelHeigth'} - $barcode->height - 18) / 2;
		$y_adjust = 5 if ($y_adjust < 0);
		$y_adjust += $barcode->height;

		$text->translate($x + $x_adjust_1, $y + $y_adjust + 9);
		$text->text($title);
		$text->translate($x + $x_adjust_2, $y + $y_adjust);
		$text->text($author);

-------------  CUT  --------------

Hope that helps.

-------------- next part --------------
An embedded message was scrubbed...
From: Pedro Faria <pjf at eurotux.com>
Subject: SPAM- [Koha-devel] Problems with barcode generation
Date: Wed, 23 Aug 2006 18:10:09 +0100
Size: 4217
URL: </pipermail/koha-devel/attachments/20060823/8fd4e8d4/attachment-0002.eml>


More information about the Koha-devel mailing list