Я использую PHP и FPDF для создания PDF со списком элементов.У меня есть цикл, и в цикле у меня есть проверка с помощью GetY (), чтобы проверить, когда будет перерыв.Это отлично работает, но на первой странице нет.Он создает страницы, но на первой странице не разбивает текст на вторую страницу, как другие.Что мне делать?
[...]
if ($pdf->GetY() > 230) {
$pdf->AddPage();
}
endwhile;
Полный код:
if($_GET['print'] == 'ok'){
$idO = $_GET['id'];
require_once "assets/fpdf/fpdf.php";
$pdf = new FPDF( 'P', 'mm', 'A4' );
$pdf->AddPage();
$pdf->SetFillColor( 255, 255, 255 );
$pdf->SetDrawColor( 255, 255, 255 );
$pdf->AliasNbPages();
$pdf->SetAutoPageBreak(true, 30);
$itens = get_field('itens', $idO);
$args = array(
'post_type' => 'categorias',
'posts_per_page' => -1,
'meta_key' => 'ordem',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
'key' => 'status',
'value' => 'ativo',
'compare' => '='
)
);
$query = new WP_Query($args);
$i=0;
while ($query->have_posts()):$query->the_post();
foreach ($itens as $key => $value){
if(get_field('categoria', $value) == get_the_ID()){
$i++;
$pdf->SetFont( 'Arial', 'B', 10 );
if($i == 1){
$pdf->MultiCell( 0, 10, utf8_decode(html_entity_decode(get_the_title($value))).':', 0, 'C', false );
$imgWidth = 65;
$f = get_field('principal', $value);
$wI = get_field('_wp_attachment_metadata', get_field('foto'.$f, $value))['width'];
$hI = get_field('_wp_attachment_metadata', get_field('foto'.$f, $value))['height'];
$pY = ($imgWidth * $hI) / $wI;
$pX = ($pdf->GetPageWidth() - $imgWidth) / 2;
$img = wp_get_attachment_image_src( get_field('foto'.$f, $value), 'full' )[0];
$pdf->Image($img,$pX,$pdf->GetY(),$imgWidth);
$pdf->Ln( $pY );
$pdf->MultiCell( 0, 5, "Gabinete:", 0, 'L', false );
} else{
$pdf->MultiCell( 0, 5, utf8_decode(html_entity_decode(get_the_title($value))).':', 0, 'L', false );
}
if(get_field('modelo', $value) != ''){
$pdf->Ln(2);
$pdf->SetX(20);
$pdf->SetFont( 'Arial', 'B', 10 );
$pdf->MultiCell( 0, 5, "Modelo: ", 0, 'L', false );
$pdf->SetX(25);
$pdf->SetFont( 'Arial', '', 10 );
$pdf->MultiCell( 0, 5, utf8_decode(get_field('modelo', $value)), 0, 'L', false );
}
if(get_field('fabricante', $value) != ''){
$pdf->Ln(2);
$pdf->SetFont( 'Arial', 'B', 10 );
$pdf->SetX(20);
$pdf->MultiCell( 0, 5, "Fabricante: ", 0, 'L', false );
$pdf->SetX(25);
$pdf->SetFont( 'Arial', '', 10 );
$pdf->MultiCell( 0, 5, utf8_decode(get_field('fabricante', $value)), 0, 'L', false );
}
$pdf->SetX(20);
$pdf->SetFont( 'Arial', 'B', 10 );
$pdf->MultiCell( 0, 10, utf8_decode("Especificações Técnicas:"), 0, 'L', false );
$pdf->SetX(25);
$pdf->SetFont( 'Arial', '', 10 );
$pdf->MultiCell( 0, 5, utf8_decode(html_entity_decode(get_field('descricao', $value))), 0, 'L', false );
if($i > 1){
if(get_field('exibir', $value) != ''){
$pdf->Ln( 2 );
$x=0;
foreach (get_field('exibir', $value) as $key2 => $value2){
$x++;
$imgWidth2 = 20;
$wtP = ($imgWidth2 * $x);
$pX2 = ($x == 1)?($pdf->GetX() + $wtP):($pdf->GetX() + $wtP + 5);
$img2 = wp_get_attachment_image_src( get_field('foto'.$value2, $value), 'full' )[0];
$pdf->Image($img2,$pX2,$pdf->GetY(),$imgWidth2);
}
$pdf->Ln( 25 );
}
}
if ($pdf->GetY() > 265) {
$pdf->AddPage();
}
}
$pdf->Ln( 2 );
}
endwhile;
wp_reset_query();
$pdf->Output('', 'relatorio.pdf');
die();
}