Удалить страницы с помощью fpdf

Я хотел бы удалить некоторые страницы из своего PDF-файла, созданного с помощью библиотеки fpdf,

$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage(); 

Есть ли функция удаления страницы. Я не знаком с FPDF.


person Vineesh Kalarickal    schedule 26.06.2013    source источник
comment
FPDF не позволяет удалять страницы. Вы можете попробовать TCPDF, в котором есть функция deletePage(page_no), позволяющая удалить страницу.   -  person creatvepro    schedule 15.08.2013
comment
Я предполагаю, что unset($pdf->pages[pageNum]) должен работать, хотя и не проверялся. После удаления вы должны переиндексировать массив, чтобы индексы массива соответствовали реальным номерам страниц. Индекс первой страницы равен 1.   -  person Timo Kähkönen    schedule 30.06.2016


Ответы (1)


Вы хотите использовать FPDI. Выйдите из менталитета «удаления» страницы. Вместо этого рассматривайте это как «не вставленную» страницу. Допустим, я хочу пропустить страницы 3, 15, 17 и 22. Вот как это сделать:

$pdf = new FPDI();
$pageCount = $pdf->setSourceFile('document.pdf');

//  Array of pages to skip -- modify this to fit your needs
$skipPages = [3,15,17,22];

//  Add all pages of source to new document
for( $pageNo=1; $pageNo<=$pageCount; $pageNo++ )
{
    //  Skip undesired pages
    if( in_array($pageNo,$skipPages) )
        continue;

    //  Add page to the document
    $templateID = $pdf->importPage($pageNo);
    $pdf->getTemplateSize($templateID);
    $pdf->addPage();
    $pdf->useTemplate($templateID);
}

$pdf->Output();

Обратите внимание, что я не включил многие вещи, которые вы могли бы сделать с FPDI, в том числе определение ориентации страницы. Я также пропустил некоторые проверки ошибок для простоты. Рассматривайте это как шаблон для работы, а не как окончательный код, потому что в конечном итоге это просто быстрый скелет.

person Muhammad Abdul-Rahim    schedule 14.05.2015