2013-08-29 4 views
1

Я использую функцию fpdf AddLink для создания внутренней ссылки и в конце всей генерации страницы. Я использую следующую функцию для изменения порядка страниц после того, как ссылки не работают. В чем может быть причина. СпасибоFPDF AddLink не работает

public function movePages($oldIndex, $nrPages, $newIndex) { 

    $newPages = array(); 

    for($i=1; $i<=sizeof($this->pages); $i++) { 
     if($i < $newIndex) { 

      $newPages[$i] = $this->pages[$i]; 
     } elseif($i < $newIndex+$nrPages) { 
      $newPages[$i] = $this->pages[$oldIndex+$i-$newIndex+1]; 
     } else { 
      $newPages[$i] = $this->pages[$i-$nrPages]; 
     } 

     $newPages[$i] = str_replace('{pageNr}', $i, $newPages[$i]); 
    } 

    $this->pages = $newPages; 

} 

ответ

0

Право.

Просто наткнулся на это сам. Нашел решение.

Когда происходит переключение страниц, кажется, что текстовые элементы хранятся в схеме одного вида сопоставления, а визуальные элементы хранятся в другом. Когда страница переключается, текст перемещается, а горячие точки - нет. Они все еще связаны и работают, но их трудно найти на их исходной странице.

Трюк, который я нашел, заключался в том, чтобы хранить координаты Abscissa и номер страницы для ссылки в массиве (хеширование, индексированное исходным номером страницы), выполнить переключение в цикле (вручную установить номер страницы $this->page для каждой ссылки) и используйте $this->Link($x, $y, $w, $h, $link), чтобы сделать точку доступа, где я хочу ее, а затем $this->SetLink($link, 0, $pageNo), чтобы установить ее на нужную страницу.

Затем сбросьте количество страниц или оно не будет отображено правильно.