2013-08-29 24 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

沒錯。

剛剛碰到了這個自己。找到了解決方案。

當頁面切換髮生時,看起來文本元素存儲在一種映射方案中,而視覺元素存儲在另一種映射方案中。當頁面切換時,文本會移動,而熱點則不會。他們仍然是聯繫和工作的,但現在很難在他們的原始頁面上找到。

我發現工作的訣竅是存儲橫向座標和頁碼鏈接到一個數組(哈希索引原始頁碼),做一個循環內切換(手動設置頁碼每個鏈接使用$this->page),並使用$this->Link($x, $y, $w, $h, $link)將熱點置於我想要的位置,然後$this->SetLink($link, 0, $pageNo)將其設置爲正確的頁面。

然後重置頁數或它不會正確渲染。