自动分页 FPDF
Auto page break FPDF
这是我用来从数据库中获取的数据创建列表的代码。我使用 for each 循环将所有数据放在屏幕上,因为它是来自数据库的可变数据量。
现在我遇到了当有 38 行数据时它停止的问题...我已经设置了 SetAutoPageBreak(true, 10);但它似乎不起作用。
请问是否有人有可能的解决方案。
感谢正手:)
$pdf = new FPDF('P','mm','A4');
$pdf->addPage(); $pdf->SetFont('Arial','B',16);
$pdf->SetMargins(10, 10);
$pdf->SetAutoPageBreak(true, 10);
// De kop
$pdf->SetTextColor(0,0, 0);
$pdf->Text(10, 15, "Balansformulier", TRUE);
$pdf->Text(10, 25, "#", TRUE);
$pdf->Text(30, 25, "Naam", TRUE);
$pdf->Text(100, 25, "Waar", TRUE);
$pdf->Text(154, 25, "Aanwezig?", TRUE);
$pdf->SetFont('Arial','i',11);
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
$nummer=0;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
for($i=0; $i<5; $i++){
foreach($balans_lijst as $balans){
$nummer++;
$naam = $html_entities->html_ent($balans['naam']);
$waar = $html_entities->html_ent($balans['waar']);
$y = $y+7;
$y2 = $y2+7;
$ynummer = $ynummer+7;
$ylijn = $ylijn+7;
$pdf->SetXY($x1, $y);
//Stukken erop zetten
$pdf->Text($xnummer,$ynummer,"{$nummer}.",1,'L', TRUE);
$pdf->Text($x1,$y,"{$naam}",1,'L', TRUE);
$pdf->Text($x2,$y,"{$waar}",1,'L', TRUE);
$pdf->Line($xlijn, $ylijn, 190, $ylijn);
$pdf->Rect($x3, $y2, 3, 3);
}
}
重置 x y 和 $pdf->AddPage();
(...)
//Stukken erop zetten
if($nummer % 38 === 0){
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
$pdf->AddPage();
}
$pdf->Text($xnummer,$ynummer,"{$nummer}.",1,'L', TRUE);
$pdf->Text($x1,$y,"{$naam}",1,'L', TRUE);
$pdf->Text($x2,$y,"{$waar}",1,'L', TRUE);
$pdf->Line($xlijn, $ylijn, 190, $ylijn);
(...)
完整示例
$pdf = new \FPDF('P','mm','A4');
$pdf->addPage(); $pdf->SetFont('Arial','B',16);
$pdf->SetMargins(10, 10);
$pdf->SetAutoPageBreak(true, 10);
// De kop
$pdf->SetTextColor(0,0, 0);
$pdf->Text(10, 15, "Balansformulier", TRUE);
$pdf->Text(10, 25, "#", TRUE);
$pdf->Text(30, 25, "Naam", TRUE);
$pdf->Text(100, 25, "Waar", TRUE);
$pdf->Text(154, 25, "Aanwezig?", TRUE);
$pdf->SetFont('Arial','i',11);
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
$nummer=0;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
for($i=0; $i<5; $i++){
for($i=0; $i<500; $i++){
$nummer++;
$naam = 'XXXXXX';
$waar = 'XXXXXXXXXX';
$y = $y+7;
$y2 = $y2+7;
$ynummer = $ynummer+7;
$ylijn = $ylijn+7;
$pdf->SetXY($x1, $y);
//Stukken erop zetten
if($nummer % 38 === 0){
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
$pdf->AddPage();
}
$pdf->Text($xnummer,$ynummer,"{$nummer}.",1,'L', TRUE);
$pdf->Text($x1,$y,"{$naam}",1,'L', TRUE);
$pdf->Text($x2,$y,"{$waar}",1,'L', TRUE);
$pdf->Line($xlijn, $ylijn, 190, $ylijn);
$pdf->Rect($x3, $y2, 3, 3);
}
}
当我在创建新对象后直接添加它时,它对我产生了影响,
$pdf = new PDF();
$pdf->SetAutoPageBreak(true,10);
这是我用来从数据库中获取的数据创建列表的代码。我使用 for each 循环将所有数据放在屏幕上,因为它是来自数据库的可变数据量。
现在我遇到了当有 38 行数据时它停止的问题...我已经设置了 SetAutoPageBreak(true, 10);但它似乎不起作用。
请问是否有人有可能的解决方案。
感谢正手:)
$pdf = new FPDF('P','mm','A4');
$pdf->addPage(); $pdf->SetFont('Arial','B',16);
$pdf->SetMargins(10, 10);
$pdf->SetAutoPageBreak(true, 10);
// De kop
$pdf->SetTextColor(0,0, 0);
$pdf->Text(10, 15, "Balansformulier", TRUE);
$pdf->Text(10, 25, "#", TRUE);
$pdf->Text(30, 25, "Naam", TRUE);
$pdf->Text(100, 25, "Waar", TRUE);
$pdf->Text(154, 25, "Aanwezig?", TRUE);
$pdf->SetFont('Arial','i',11);
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
$nummer=0;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
for($i=0; $i<5; $i++){
foreach($balans_lijst as $balans){
$nummer++;
$naam = $html_entities->html_ent($balans['naam']);
$waar = $html_entities->html_ent($balans['waar']);
$y = $y+7;
$y2 = $y2+7;
$ynummer = $ynummer+7;
$ylijn = $ylijn+7;
$pdf->SetXY($x1, $y);
//Stukken erop zetten
$pdf->Text($xnummer,$ynummer,"{$nummer}.",1,'L', TRUE);
$pdf->Text($x1,$y,"{$naam}",1,'L', TRUE);
$pdf->Text($x2,$y,"{$waar}",1,'L', TRUE);
$pdf->Line($xlijn, $ylijn, 190, $ylijn);
$pdf->Rect($x3, $y2, 3, 3);
}
}
重置 x y 和 $pdf->AddPage();
(...)
//Stukken erop zetten
if($nummer % 38 === 0){
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
$pdf->AddPage();
}
$pdf->Text($xnummer,$ynummer,"{$nummer}.",1,'L', TRUE);
$pdf->Text($x1,$y,"{$naam}",1,'L', TRUE);
$pdf->Text($x2,$y,"{$waar}",1,'L', TRUE);
$pdf->Line($xlijn, $ylijn, 190, $ylijn);
(...)
完整示例
$pdf = new \FPDF('P','mm','A4');
$pdf->addPage(); $pdf->SetFont('Arial','B',16);
$pdf->SetMargins(10, 10);
$pdf->SetAutoPageBreak(true, 10);
// De kop
$pdf->SetTextColor(0,0, 0);
$pdf->Text(10, 15, "Balansformulier", TRUE);
$pdf->Text(10, 25, "#", TRUE);
$pdf->Text(30, 25, "Naam", TRUE);
$pdf->Text(100, 25, "Waar", TRUE);
$pdf->Text(154, 25, "Aanwezig?", TRUE);
$pdf->SetFont('Arial','i',11);
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
$nummer=0;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
for($i=0; $i<5; $i++){
for($i=0; $i<500; $i++){
$nummer++;
$naam = 'XXXXXX';
$waar = 'XXXXXXXXXX';
$y = $y+7;
$y2 = $y2+7;
$ynummer = $ynummer+7;
$ylijn = $ylijn+7;
$pdf->SetXY($x1, $y);
//Stukken erop zetten
if($nummer % 38 === 0){
// horizontale waardes voor de variabelen
$x1=30;
$x2=100;
$x3=160;
// veritcale waardes voor de variabelen
$y=30;
$y2=27;
// waardes voor de nummers
$xnummer=10;
$ynummer=30;
//Waardes voor de lijnen
$xlijn=10;
$ylijn=31;
$pdf->AddPage();
}
$pdf->Text($xnummer,$ynummer,"{$nummer}.",1,'L', TRUE);
$pdf->Text($x1,$y,"{$naam}",1,'L', TRUE);
$pdf->Text($x2,$y,"{$waar}",1,'L', TRUE);
$pdf->Line($xlijn, $ylijn, 190, $ylijn);
$pdf->Rect($x3, $y2, 3, 3);
}
}
当我在创建新对象后直接添加它时,它对我产生了影响,
$pdf = new PDF();
$pdf->SetAutoPageBreak(true,10);