Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8556[/thread]

PDF::Create - dynamisch Seiten hinzufügen

Leser: 1


<< >> 2 Einträge, 1 Seite
Gast Gast
 2006-12-07 11:46
#72298 #72298
Hallo,

ich benutze das Modul PDF::Create um regelmäßig automatisiert Reports zu erstellen. In die PDF-Datei kommt eigentlich nur Zeilen, die aus der Datenbank abgefragt wird. Dieses Ergebnis kann aber 10 oder 10000 Einträge umfassen. 10000 Einträge würden ja nicht auf eine Seite passen. Bei PDF::Create kann man aber nur "händisch" neue Seiten mit
Code: (dl )
my $page2 = $root->new_page;

anlegen. Sehe ich das richtig?
Gibt es eine Möglichkeit automatisch neue Seiten anzulegen, wenn die Zeilenanzahl zu groß für eine Seite ist?

Bis jetzt umgehe ich es umständlich aber nur bis 1000 Einträge. Sieht sehr unprofessionell aus:

(Ich gehe jede Ergebniszeile durch, nebenbei läuft ein counter c)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if ($c < 50){
$page->stringl($daten);
}
elsif ($c >= 50 && $c < 110){
if ($c == 50){
$page2 = $root->new_page;
}
$page2->stringl($daten);
}
elsif ($c >= 110 && $c < 170){
if ($c == 110){
$page3 = $root->new_page;
}
$page3->stringl($daten);
}
elsif ($c >= 170 && $c < 230){
if ($c == 170){
$page4 = $root->new_page;
}
$page4->stringl($daten);
}


...usw...

Die zahlen sind so komisch, weil auf die erste seite 50 Zeilen passen und auf die weiteren 60.

Also wie kann man lange Texte automatisch auf mehrere Seiten verteilen?
Wäre für Hilfe dankbar!

Gruß Stefan
renee
 2006-12-07 12:00
#72299 #72299
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das ganze kannst Du auch so kürzen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my $pdf = PDF::Create->nw(...);
my $root = $pdf->new_page(...);

# Datenbankzeugs...

my $c = 0;
my $page = $root->new_page();
while(my ($daten) = $sth->fetchrow_array()){
if($c == 50 or ($c -50) % 60 == 0){
$page = $root->new_page();
}
$page->stringl($daten);
$c++;
}


Das ist jetzt nur illustriert, anpassen an Deinen Code musst Du es selbst. Das ist ungetestet!\n\n

<!--EDIT|renee|1165485718-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 2 Einträge, 1 Seite



View all threads created 2006-12-07 11:46.