You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中使用FPDF:如何创建跨页链接(如从第1页到第6页指定位置)

FPDF跨页链接(先占位后绑定)解决方案

FPDF本身支持通过先创建链接占位符,后续绑定目标的方式解决这个问题,具体步骤如下:

  • 先初始化一个未关联目标的链接ID,调用SetLink()时不传入目标页码和坐标,仅获取返回的链接ID:

    $targetLinkId = $pdf->SetLink();
    
  • 在第1页(或任何提前生成的页面)创建点击区域,直接使用这个占位符ID作为链接目标:

    $pdf->AddPage();
    // 定义点击区域:x坐标、y坐标、宽度、高度、链接ID
    $pdf->Link(10, 20, 80, 12, $targetLinkId);
    $pdf->Cell(80, 12, '点击跳转至第6页指定位置');
    
  • 生成到目标页面(第6页)的指定位置时,重新调用SetLink(),传入之前的链接ID、当前的y坐标和页码,完成绑定:

    $pdf->AddPage(); // 第6页
    // 输出内容直到目标位置
    $pdf->Cell(0, 10, '第6页前置内容');
    $pdf->Ln(30); // 模拟内容间隔,到达目标位置
    $pdf->Cell(0, 10, '这是跳转的目标位置');
    
    // 绑定占位符到当前位置
    $pdf->SetLink($targetLinkId, $pdf->GetY(), $pdf->PageNo());
    

关键原理

FPDF的SetLink()方法有两种用法:

  1. 不带目标参数时,生成一个空的链接ID,作为占位符;
  2. 传入已存在的链接ID时,会将该ID关联到指定的页码和y坐标,覆盖之前的占位状态。

这种方式无需提前知道目标页面的坐标,完全适配先建链接后生成目标页面的场景。

内容的提问来源于stack exchange,提问作者Sempervivum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:53:20