TCPDF如何链接到目录(TOC)?

时间:2014-05-06 01:33:32

标签: php hyperlink tcpdf tableofcontents

任何人都可以演示一个基本示例,在pdf中的任意页面上添加链接,将用户带回到目录中吗?

我让一切工作正常,但不能满足这个简单的要求。

一些背景知识:

你认为这将是微不足道的,关于TCPDF的一切看起来运作得很好,也许是我遇到的糟糕的一天。我尝试过以下方法:

从文档中可以看出有两种创建内部文档链接的选项

  • 通过addlink()和setlink()方法指定目标页面。
  • 通过pdf中呈现的html锚标记(例如,您将href属性指定为第15页的#15)。

这些方法基本上都可以正常使用。

作者的一句话 -

“内容列表”页面在当前页面上创建,然后移动到指定页面...要创建指向TOC页面的链接,您必须设置指向最后一页的链接(您必须知道之前的总页数。)

我理解这一点,我最后创建了TOC(使用提供的方法),并链接到最后一页,但它是无法点击的(不是渲染文档中的链接)。因此,我必须解释引用'您必须知道之前的页数总数。因为TCPDF必须知道页数!显然是一个很大的区别,对于大多数实际目的而言,答案是否定的,而不是通过这种方法(可能是最后一页上的一个链接!)

最后,addTOC方法的文档提到了$ toc_name参数:

TCPDF::addTOC   (       
 $page = '',
 $numbersfont = '',
 $filler = '.',
 $toc_name = 'TOC',
 $style = '',
}   

$toc_name (string) name to use for TOC bookmark.

很遗憾,无论如何我都无法在任何地方使用此名称,没有文档,帮助或示例。

有人......请告诉我,我很傻。

2 个答案:

答案 0 :(得分:1)

可能会迟到,但这是我使用的(我的目录在第2页):

$pdf->addTOCPage();             
$link = $pdf->AddLink();
$pdf->SetLink($link, 0, '*2');
$pdf->addTOC(2, 'courier', '.', 'INDEX', 'R', array(128,0,0));
$pdf->endTOCPage();

然后在我想要链接回文档中的TOC的地方,我执行以下操作:

$html = '<a href="#*2" style="color:blue;">Return to TOC</a>';
$pdf->writeHTML($html, true, false, true, false, 'R');

答案 1 :(得分:0)

TCPDF书签:

 $bookmark = "Title of my Bookmark";     
 $pdf->Bookmark($bookmark);

这是添加到PDF书签的最佳选择。