2013-08-29 20 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)将其设置为正确的页面。

然后重置页数或它不会正确渲染。