2016-09-13 14 views
0

Я создаю букву формы из таблицы заказов. Каждый заказ может иметь 1 или 2 страницы. PDF содержит все заказы. Теперь я хочу поместить номера страниц для каждого заказа в PDF.FPDF Получение номеров страниц в форме буквы 1 или 2-сторонней формы

первого порядка: Страницы 1 и 2, второго порядка: Page 3, третьего порядка: Page 4

Количество страниц зависит от того, сколько статей клиент заказал (не более 2 страниц).

PageNo() использует весь документ для нумерации. Может, у кого-то была такая же проблема?

ответ

0

Ожидаемый результат может быть достигнут путем подкласса класса FPDF FPDF и добавления свойства $orderPageNo для отслеживания «подстраницы» текущего порядка. Затем вы можете использовать это свойство в своем настроенном методе Header или Footer.

Пример:

<?php 

require('fpdf/fpdf.php'); 

class PDF extends FPDF { 

    protected $orderNumber, $orderPageNo; 

    function AcceptPageBreak() { 
     $accept = parent::AcceptPageBreak(); 
     if ($accept) { 
      $this->orderPageNo++; 
     } 
     return $accept; 
    } 

    function Header() { 
     $this->Cell(50, 30, 'Order #'.$this->orderNumber); 
     $this->Cell(50, 30, 'Page '.$this->orderPageNo, 0, 1); 
    } 

    function Order($orderNumber, $items) { 
     $this->orderNumber = $orderNumber; 
     $this->orderPageNo = 1; 
     $this->AddPage(); 

     for ($i = 1; $i <= $items; $i++) { 
      $this->Cell(30, 12, 'Item #'.$i, 1, 1); 
     } 
    } 

} 

$pdf = new PDF(); 
$pdf->SetFont('Arial', '', 12); 

$orders = array(1 => 15, 2 => 25, 3 => 35); 
foreach ($orders as $orderNumber => $items) { 
    $pdf->Order($orderNumber, $items); 
} 

$pdf->Output();