It's not long and while it isn't the best code it does work. Perhaps this
addresses your question (or perhaps not)
#!/usr/bin/perl
use DBI;
use PDF::Create;
use PDF::Labels;
BEGIN { sub get ($$); }
# group by senate district
# district,id,name,phone,address
my $filename = shift @ARGV;
die "You must specify a filename" unless $filename;
$dbh = DBI->connect("dbi:Pg:dbname=gpm");
$dbh->{RaiseError} = 1;
my $DISTRICT = 0;
my $ID = 1;my $NAME = 2;my $ADDRESS = 3;my $ADDRESS_2 = 4;my $CITY = 5;my
$ZIP = 6;
$sth = $dbh->prepare(qq{
SELECT DISTINCT legislative_district,contact_id,first_name||'
'||middle_name||' '||last_name,address,address_2,city,zip
FROM contacts_full
WHERE no_mail != 'Yes' or no_mail IS NULL
ORDER BY legislative_district, zip,city,address});
$sth->execute;
$pdf = new PDF::Labels($PDF::Labels::PageFormats[0],
filename => $filename,
Author => "Joshua Jore",
Title => "Green Party Caucusing labels");
$pdf->label('Ordered by district,zip,city,address',
'read left-right,top-bottom');
while (my @record = $sth->fetchrow_array) {
if ($prevd ne $record[$DISTRICT]) {
$pdf->label('############',
'District '.$record[$DISTRICT],
'############');
}
unless ($prev eq $record[$DISTRICT].$record[$ID]) {
@record = map {s/\s+/ /go;$_} @record;
@label = ();
for ($NAME,$ADDRESS,$ADDRESS_2) {
push @label, $record[$_] if $record[$_];
}
push @label, $record[$CITY].' MN, '.$record[$ZIP];
push @label, '('.$record[$DISTRICT].'-'.$record[$ID].')';
$pdf->label(@label);
}
$prev = $record[$DISTRICT].$record[$ID];
$prevd = $record[$DISTRICT];
}
$pdf->close() if $pdf;
"Herbold, John W." <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
03/11/2002 04:18 PM
To: [EMAIL PROTECTED], "'[EMAIL PROTECTED] '"
<[EMAIL PROTECTED]>
cc:
Subject: DBI and PDF...
Does anybody have an example or two of spitting out a result from a DBI
call
into a PDF file ?
I am loosing what little hair I have left trying to get PDF::CREATE to put
thing like I want them!
Thanks !
John W. Herbold Jr.
IS Specialist/DBA
_______________________________________________
ActivePerl mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs