FPDI 不导入指定页数
FPDI does not import specified number of pages
我对 FPDI/FPDF 有疑问。我有一个表格,根据所选选项(1、2 或 3),每个表格使用 1、2 或 3 页的源模板。
$num_experiencias = $_POST["totalExpPdf"];
if($num_experiencias == "1"){
$pdf->setSourceFile(dirname(dirname(__FILE__)) .'/pdfs/guia_uno_blanco.pdf'); // one blank page
} else if($num_experiencias == "2"){
$pdf->setSourceFile(dirname(dirname(__FILE__)) .'/pdfs/guia_dos_blanco.pdf'); // two blank pages
} else{
$pdf->setSourceFile(dirname(dirname(__FILE__)) .'/pdfs/guia_tres_blanco.pdf'); // three blank pages
}
因此,如果 $num_experiencias 是 1,我会在 pdf 中写一些东西,同样,如果数字是 2 或 3,我会写其他东西。
// ******** PAGE 1 ********
$pageId = $pdf->ImportPage(1);
$pdf->AddPage();
$pdf->useTemplate($pageId, null, null, 0, 0, true);
// IMAGE
$pdf->Image($imagen1,10,10,234,170);
// NUM EXP
$pdf->SetXY(30, 35);
$pdf->SetFont('Quicksand-Regular', '', 16);
$pdf->SetTextColor(255, 255, 255);
$pdf->MultiCell(50, 13, utf8_decode('Experiencia 1/'.$num_experiencias), 0, 'C');
// ******** PAGE 2 ********
if ($num_experiencias >= "2"){
$pageId = $pdf->ImportPage(2);
$pdf->AddPage();
$pdf->useTemplate($pageId, null, null, 0, 0, true);
// IMAGE
$pdf->Image($imagen2,10,10,234,170);
}
// ******** PAGE 3 ********
if($num_experiencias == "3"){
$pageId = $pdf->ImportPage(3);
$pdf->AddPage();
$pdf->useTemplate($pageId, null, null, 0, 0, true);
// IMAGE
$pdf->Image($imagen3,10,10,234,170);
}
问题是,如果我只需要 1 页($num_experiencias == 1),输出的 pdf 有 6 页长(而不是 1 页)。如果 $num_experiencias 为 2,则 pdf 现在有 12 页长(当它应该为 2 页时),如果 $num_experiencias 为 3,则 pdf 现在有 18 页长(当它应该为 3 页时)。这是怎么回事? O.o
您的代码似乎触发了自动分页。
如果您将字体颜色设置为白色以外的其他颜色,您应该会看到是哪些项目触发了这个。
要禁用它只需调用
$pdf->SetAutoPageBreak(false);
在您向 page/document 写入任何内容之前。
我对 FPDI/FPDF 有疑问。我有一个表格,根据所选选项(1、2 或 3),每个表格使用 1、2 或 3 页的源模板。
$num_experiencias = $_POST["totalExpPdf"];
if($num_experiencias == "1"){
$pdf->setSourceFile(dirname(dirname(__FILE__)) .'/pdfs/guia_uno_blanco.pdf'); // one blank page
} else if($num_experiencias == "2"){
$pdf->setSourceFile(dirname(dirname(__FILE__)) .'/pdfs/guia_dos_blanco.pdf'); // two blank pages
} else{
$pdf->setSourceFile(dirname(dirname(__FILE__)) .'/pdfs/guia_tres_blanco.pdf'); // three blank pages
}
因此,如果 $num_experiencias 是 1,我会在 pdf 中写一些东西,同样,如果数字是 2 或 3,我会写其他东西。
// ******** PAGE 1 ********
$pageId = $pdf->ImportPage(1);
$pdf->AddPage();
$pdf->useTemplate($pageId, null, null, 0, 0, true);
// IMAGE
$pdf->Image($imagen1,10,10,234,170);
// NUM EXP
$pdf->SetXY(30, 35);
$pdf->SetFont('Quicksand-Regular', '', 16);
$pdf->SetTextColor(255, 255, 255);
$pdf->MultiCell(50, 13, utf8_decode('Experiencia 1/'.$num_experiencias), 0, 'C');
// ******** PAGE 2 ********
if ($num_experiencias >= "2"){
$pageId = $pdf->ImportPage(2);
$pdf->AddPage();
$pdf->useTemplate($pageId, null, null, 0, 0, true);
// IMAGE
$pdf->Image($imagen2,10,10,234,170);
}
// ******** PAGE 3 ********
if($num_experiencias == "3"){
$pageId = $pdf->ImportPage(3);
$pdf->AddPage();
$pdf->useTemplate($pageId, null, null, 0, 0, true);
// IMAGE
$pdf->Image($imagen3,10,10,234,170);
}
问题是,如果我只需要 1 页($num_experiencias == 1),输出的 pdf 有 6 页长(而不是 1 页)。如果 $num_experiencias 为 2,则 pdf 现在有 12 页长(当它应该为 2 页时),如果 $num_experiencias 为 3,则 pdf 现在有 18 页长(当它应该为 3 页时)。这是怎么回事? O.o
您的代码似乎触发了自动分页。
如果您将字体颜色设置为白色以外的其他颜色,您应该会看到是哪些项目触发了这个。
要禁用它只需调用
$pdf->SetAutoPageBreak(false);
在您向 page/document 写入任何内容之前。