2017-11-21 33 views
0

FPDI/FPDF에 문제가 있습니다. 나는 선택한 옵션 (1, 2 또는 3)에 따라 하나, 둘 또는 세 페이지 각각에 대해 소스 템플릿을 사용하는 양식이 있습니다. $ num_experiencias가 1이면FPDI가 지정된 페이지 수를 가져 오지 않습니다.

$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 
} 

그래서, 나는 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

+0

스크립트는 최대 3 개의 페이지를 만듭니다 (각 AddPage()는 페이지를 만듭니다). FPDI의 방법은 절대로 페이지를 만들지 않습니다. 그래서 이것이 완전한 코드가 아닌 것 같습니다. –

+0

아니야 ... 나는 모든 코드를 포함하도록 영업 시간을 업데이트 할 예정이다. – Annton32

+0

예제 PDF 파일을 공유하십시오. 자동 페이지 나누기를 실행 중입니까? –

답변

0

코드가 자동 페이지 나누기를 트리거하는 것으로 보입니다.

글꼴 색을 흰색 이외의 값으로 설정하면 어떤 항목이이를 유발하는지보아야합니다.

는 페이지/문서 콘텐츠를 쓰기 전에 그냥

$pdf->SetAutoPageBreak(false); 

를 호출하지 않으려면.

+0

굉장! 그것은 완벽하게 지금 감사합니다! – Annton32