Hallo, ich habe vor ca. 1 Jahr ein kleines Script zum erzeugen von Etiketten mit fpdf geschrieben.
Nun möchte ich es optimieren und hoffe auf eure Hilfe.
Ich übergebe vorher per Formular die Anzahl der Etiketten und nun
NEU die Nummer des ersten Etiketts (falls schon welche gedruckt wurden).
Die Anzahl der Etiketten auf einem Blatt ist immer gleich (3*9=27).
PHP-Code:
<?
require('fpdf.php');
$start=5;
$anzahl=62;
$etproseite=27;
$spalten=3;
$letztes=$start+$anzahl;
Erste Etikett soll nun Etikett 5 auf dem ersten Blatt sein. 62 Etiketten werden benötigt.
PHP-Code:
$seitenanzahl = floor($letztes/$etproseite);
$etikettenrest = $letztes % $etproseite;
$endreihe = floor($etikettenrest / $spalten); //Endreihe $y
$endspalte = $etikettenrest % $spalten; //Endspalte $x
$startreihe = floor($start / $spalten);
$startspalte = $start % $spalten;
//Etikettenkoordinaten
$x = array(7.5, 74, 140.5);
$y = array(15.3, 44.9, 74.5, 104.1, 133.7, 163.3, 192.9, 222.5, 252.1);
Die jeweilige Startpunkte der Etiketten, Etikett 1 ist z.B. x=7.5 y=15.3 da das Etikettenpapier Ränder hat.
PHP-Code:
//PDF Grundeinstellungen
$pdf=new FPDF('P','mm','A4');
$pdf->SetMargins(0,0,0);
$pdf->SetAutoPageBreak('false',0);
$pdf->AddFont('Cooper');
$counter = 0;
//Seiten erzeugen
for ($p = 0;$p<=$seitenanzahl;$p++) {
$reihe = 0;
$spalte=0;
//komplette Seite oder nur ein Teil?
if ($seitenanzahl > $p){
$j = 26;
}else{
$j = $etikettenrest-1;
}
$pdf->AddPage();
//Etiketten generieren und mit Inhalt füllen
for ($i = 0;$i<=$j;$i++) {
$pdf->SetXY($x[$spalte],$y[$reihe]);
$pdf->Write(10, "Der Inhalt");
//Reihenwechsel
if($spalte !='2') {
$spalte++;
}else{
$spalte=0;
$reihe++;
}
$counter++;
}
}
Ich versuche nun verzweifelt das mit Etikett 5 angefangen wird und nicht mit dem ersten, bekomme es aber einfach nicht hin.
Bin für jeden Tip dankbar!
Sascha