Navigazione (HasNavigation)
Il trait HasNavigation e i suoi moduli sottostanti (BookmarkManager, TocManager, AnnotationManager, FileAttachment) forniscono funzionalità navigazione PDF: segnalibri gerarchici, indice auto-generato, link interni ed esterni, destinazioni nominate, annotazioni e allegati file incorporati. Tutti i metodi restituiscono static, quindi ogni chiamata può essere concatenata.
Riferimento Rapido
| Metodo | Funzionalità |
|---|---|
bookmark() | Aggiungi voce segnalibro / outline gerarchica |
addTOC() | Auto-genera indice con leader punteggiati |
addHTMLTOC() | Indice stile HTML |
addLink() | Crea destinazione link interno (restituisce link ID) |
setLink() | Imposta posizione target link interno |
setDestination() | Crea ancora destinazione nominata |
annotation() | Aggiungi annotazione testo |
addFileAttachment() | Incorpora allegato file nel PDF |
Esempio Base
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setFont('Helvetica', '', 12)
// Segnalibri
->bookmark('Chapter 1', 0)
->cell(0, 10, 'Chapter 1: Introduction', newLine: true)
->bookmark('Section 1.1', 1)
->cell(0, 10, '1.1 Getting Started', newLine: true)
// Link interno
->addPage()
->bookmark('Chapter 2', 0)
->cell(0, 10, 'Chapter 2: Advanced Topics', newLine: true)
// Allegato file
->addFileAttachment('/path/to/data.xlsx', 'data.xlsx', 'Supporting data')
// Auto-genera TOC alla fine (inserisce a pagina 1)
->addTOC(1, ' . ', 'Table of Contents');2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Segnalibri / Outline
$pdf->bookmark(string $txt, int $level = 0, float $y = -1, int $page = -1, string $style = '', array $color = []);I segnalibri appaiono nel pannello outline del lettore PDF. Annidali incrementando $level.
Indice
$pdf->addTOC(int $page, string $numberSuffix = '', string $bookmarkText = '');Chiama addTOC() dopo che tutti i segnalibri sono stati aggiunti. L'indice è costruito dall'albero segnalibri e inserito alla posizione pagina specificata. Usa addHTMLTOC() per controllo completo sullo stile voce tramite HTML e CSS.
Link Interni
Crea riferimenti incrociati cliccabili tra pagine:
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setFont('Helvetica', '', 12);
$linkId = $pdf->addLink();
$pdf->write(10, 'Jump to Chapter 2', link: $linkId)
->addPage()
->setLink($linkId, y: 0)
->cell(0, 10, 'Chapter 2 starts here', newLine: true);2
3
4
5
6
7
8
9
10
11
12
Link Esterni
Passa una stringa URL come parametro $link su cell(), write() o image():
$pdf->cell(0, 10, 'Visit our website', link: 'https://example.com', newLine: true)
->write(10, 'Click here', link: 'https://docs.example.com');2
Destinazioni Nominate
$pdf->setDestination(string $name, float $y = -1, int $page = -1);Le destinazioni nominate consentono a documenti esterni o URL di linkare a una posizione specifica tramite il frammento #name.