Skip to content

API Document

La classe Document (TcpdfNext\\Core\\Document) è il punto di ingresso principale per creare documenti PDF. Compone 12 trait, ciascuno dei quali contribuisce con un gruppo di metodi correlati. Tutti i metodi mutanti restituiscono static per il concatenamento fluente.

php
use TcpdfNext\\Core\\Document;

$pdf = Document::create()
    ->setTitle('Fattura')
    ->addPage()
    ->setFont('Helvetica', size: 12)
    ->cell(width: 0, height: 10, text: 'Hello World')
    ->save('/output/invoice.pdf');

HasMetadata

Metodi per impostare i metadati a livello di documento (Title, Author, Subject, Keywords, Creator).

setTitle(string $title): static
Imposta il titolo del documento (appare nella barra del titolo del visualizzatore PDF e in XMP dc:title).
setAuthor(string $author): static
Imposta l'autore del documento (XMP dc:creator).
setSubject(string $subject): static
Imposta l'oggetto del documento (XMP dc:description).
setKeywords(string|array $keywords): static
Imposta le parole chiave del documento. Accetta una stringa separata da virgole o un array di stringhe.
setCreator(string $creator): static
Imposta il nome dell'applicazione creatrice (XMP xmp:CreatorTool). Predefinito: 'TCPDF-Next'.

HasPages

Metodi per aggiungere, eliminare, spostare e configurare le pagine.

addPage(?PageSize $pageSize = null, ?Orientation $orientation = null): static
Aggiunge una nuova pagina. Opzionalmente sovrascrive le dimensioni e l'orientamento predefiniti solo per questa pagina.
deletePage(int $pageNumber): static
Rimuove la pagina all'indice basato su 1 specificato. Genera OutOfRangeException se la pagina non esiste.
movePage(int $from, int $to): static
Sposta una pagina da una posizione a un'altra. Entrambi gli indici sono basati su 1.
copyPage(int $pageNumber): static
Duplica una pagina e aggiunge la copia dopo l'ultima pagina.
setAutoPageBreak(bool $auto, float $margin = 0): static
Abilita o disabilita le interruzioni di pagina automatiche. Quando abilitato, viene aggiunta una nuova pagina quando il contenuto raggiunge il margine inferiore meno il valore del margine specificato.
setMargins(float $left, float $top, float $right = -1, float $bottom = -1): static
Imposta i margini della pagina in unità utente. Se right è -1, rispecchia left. Se bottom è -1, rispecchia top.
setLeftMargin(float $margin): static
Imposta solo il margine sinistro.
setTopMargin(float $margin): static
Imposta solo il margine superiore.
setRightMargin(float $margin): static
Imposta solo il margine destro.
setCellPadding(float $padding): static
Imposta il padding interno predefinito delle celle in unità utente.
setPageSize(PageSize $size): static
Imposta le dimensioni predefinite della pagina per le nuove pagine.
setOrientation(Orientation $orientation): static
Imposta l'orientamento predefinito della pagina per le nuove pagine.
pageCount(): int
Restituisce il numero totale di pagine nel documento.
currentPage(): int
Restituisce il numero della pagina corrente (basato su 1).
setPage(int $pageNumber): static
Sposta il cursore su una pagina esistente.

HasTypography

Metodi per selezione, dimensionamento, spaziatura dei font e misurazione delle stringhe.

setFont(string $family, string $style = '', float $size = 0): static
Seleziona un font per nome famiglia. Style può essere '' (normale), 'B' (grassetto), 'I' (corsivo), o 'BI'. Size 0 mantiene la dimensione corrente.
setFontSize(float $size): static
Imposta la dimensione del font in punti.
setFontSpacing(float $spacing): static
Imposta lo spaziatura extra tra caratteri in unità utente.
setFontStretching(float $percent): static
Imposta il ridimensionamento orizzontale del font come percentuale (100 = normale).
getStringWidth(string $text, string $family = '', string $style = '', float $size = 0): float
Calcola la larghezza di una stringa in unità utente usando le impostazioni del font specificate (o correnti).
getCharWidth(string $char): float
Restituisce la larghezza di un singolo carattere in unità utente.
getNumberOfLines(string $text, float $width): int
Stima quante righe occuperà il testo alla larghezza specificata.

HasColors

Metodi per impostare i colori di disegno, riempimento e testo con trasparenza alpha opzionale.

setDrawColor(int $r, int $g = -1, int $b = -1): static
Imposta il colore del tratto (disegno). Passa un singolo valore per scala di grigi o tre valori per RGB.
setFillColor(int $r, int $g = -1, int $b = -1): static
Imposta il colore di riempimento per forme e sfondi delle celle.
setTextColor(int $r, int $g = -1, int $b = -1): static
Imposta il colore del testo.
setAlpha(float $alpha, string $blendMode = 'Normal'): static
Imposta la trasparenza alpha (0.0 = completamente trasparente, 1.0 = completamente opaco) e modalità di fusione opzionale.
setDrawColorObject(Color $color): static
Imposta il colore del tratto usando un value object Color (supporta RGB, CMYK, Gray, Spot).
setFillColorObject(Color $color): static
Imposta il colore di riempimento usando un value object Color.
setTextColorObject(Color $color): static
Imposta il colore del testo usando un value object Color.

HasTextOutput

Metodi per il rendering del contenuto testuale sulla pagina.

cell(float $width, float $height = 0, string $text = '', string|int $border = 0, int $ln = 0, Alignment $align = Alignment::Left, bool $fill = false, string $link = ''): static
Stampa una cella a riga singola. La cella può avere un bordo, riempimento dello sfondo e un collegamento ipertestuale opzionale.
multiCell(float $width, float $height, string $text, string|int $border = 0, Alignment $align = Alignment::Justified, bool $fill = false, int $maxLines = 0): static
Stampa un blocco di testo multiriga con a capo automatico.
text(float $x, float $y, string $text): static
Posiziona una stringa di testo alle coordinate esatte. Nessun a capo automatico o limiti di cella.
write(float $height, string $text, string $link = ''): static
Scrive testo fluente dalla posizione corrente. Supporta collegamenti ipertestuali inline.
writeHtml(string $html, bool $lineBreak = true, bool $fill = false, bool $resetStyles = false, string $align = ''): static
Renderizza una stringa HTML con supporto CSS. Supporta tag HTML comuni, tabelle, elenchi e stili inline.
writeHtmlCell(float $width, float $height, float $x, float $y, string $html, string|int $border = 0, int $ln = 0, bool $fill = false): static
Renderizza HTML all'interno di una cella posizionata.
ln(float $height = 0): static
Inserisce un'interruzione di riga. Se height è 0, utilizza l'altezza dell'ultima cella stampata.

HasDrawing

Metodi per disegnare linee, forme e frecce.

line(float $x1, float $y1, float $x2, float $y2): static
Disegna una linea retta tra due punti.
rect(float $x, float $y, float $w, float $h, string $style = ''): static
Disegna un rettangolo. Style: '' (tratto), 'F' (riempimento), 'DF' (tratto + riempimento).
roundedRect(float $x, float $y, float $w, float $h, float $r, string $roundCorner = '1111', string $style = ''): static
Disegna un rettangolo con angoli arrotondati. La maschera roundCorner controlla quali angoli sono arrotondati.
circle(float $x, float $y, float $r, string $style = '', array $angles = [0, 360]): static
Disegna un cerchio (o arco) con centro (x, y) e raggio r.
ellipse(float $x, float $y, float $rx, float $ry, float $angle = 0, string $style = ''): static
Disegna un'ellisse con centro (x, y), raggio orizzontale rx e raggio verticale ry.
polygon(array $points, string $style = ''): static
Disegna un poligono da un array di coppie di coordinate [x, y].
arrow(float $x1, float $y1, float $x2, float $y2, int $headStyle = 0, float $armSize = 5, int $armAngle = 15): static
Disegna una linea con una punta di freccia.
curve(float $x0, float $y0, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3, string $style = ''): static
Disegna una curva di Bezier cubica.
setLineWidth(float $width): static
Imposta la larghezza della linea per le operazioni di tratto.
setLineCap(int $style): static
Imposta lo stile della terminazione della linea: 0 (butt), 1 (round), 2 (square).
setLineJoin(int $style): static
Imposta lo stile di giunzione della linea: 0 (miter), 1 (round), 2 (bevel).

HasTransforms

Metodi per le trasformazioni del sistema di coordinate (salvate come stack).

startTransform(): static
Salva lo stato grafico corrente. Deve essere abbinato a stopTransform().
stopTransform(): static
Ripristina lo stato grafico precedentemente salvato.
rotate(float $angle, float $x = null, float $y = null): static
Ruota le successive operazioni di disegno dell'angolo specificato (gradi) attorno al punto (x, y).
scale(float $sx, float $sy, float $x = null, float $y = null): static
Scala le successive operazioni di disegno. 100 = nessun cambiamento, 200 = dimensione doppia.
translate(float $tx, float $ty): static
Trasla (sposta) le successive operazioni di disegno di (tx, ty) unità utente.
skew(float $angleX, float $angleY, float $x = null, float $y = null): static
Inclina le successive operazioni di disegno degli angoli specificati (gradi).
mirror(string $axis, float $x = null, float $y = null): static
Specchia le successive operazioni di disegno lungo l'asse specificato ('H' orizzontale, 'V' verticale).

HasLayout

Metodi per intestazioni, piè di pagina, colonne e modalità opuscolo.

setHeaderCallback(callable $callback): static
Registra un callback invocato nella parte superiore di ogni pagina. Riceve l'istanza Document.
setFooterCallback(callable $callback): static
Registra un callback invocato nella parte inferiore di ogni pagina. Riceve l'istanza Document.
setColumnsArray(array $columns): static
Definisce un layout multi-colonna. Ogni voce è un array associativo con chiavi 'width' e opzionalmente 'margin'.
selectColumn(int $column = 0): static
Sposta il cursore alla colonna specificata (basata su 0).
setBooklet(bool $enable, float $innerMargin = -1, float $outerMargin = -1): static
Abilita la modalità opuscolo (rilegatura a sella) con margini interni ed esterni configurabili.
setPrintHeader(bool $print): static
Abilita o disabilita l'intestazione nelle pagine successive.
setPrintFooter(bool $print): static
Abilita o disabilita il piè di pagina nelle pagine successive.

HasNavigation

Metodi per segnalibri, indice dei contenuti, collegamenti, annotazioni e allegati.

bookmark(string $title, int $level = 0, float $y = -1, int $page = 0, string $style = '', Color $color = null): static
Aggiunge un segnalibro (voce di outline). Level 0 è il livello superiore; valori più alti creano figli nidificati.
addTOC(int $page = 0, string $numberFormat = '', string $filler = '.'): static
Genera un indice dei contenuti da tutti i segnalibri e lo inserisce alla pagina specificata.
addLink(): int
Crea una destinazione di collegamento interno e restituisce il suo identificatore.
setLink(int $linkId, float $y = 0, int $page = -1): static
Imposta la destinazione per un collegamento interno creato precedentemente.
annotation(float $x, float $y, float $w, float $h, string $text, array $options = []): static
Aggiunge un'annotazione di testo al rettangolo specificato.
addFileAttachment(string $filePath, string $description = '', string $name = ''): static
Allega un file al documento. Supporta file associati PDF/A-3.

HasInteractive

Metodi per campi form AcroForm e JavaScript.

textField(string $name, float $x, float $y, float $w, float $h, array $options = []): static
Aggiunge un campo di input testo alla posizione specificata.
checkboxField(string $name, float $x, float $y, float $size = 10, bool $checked = false): static
Aggiunge un campo checkbox.
radioField(string $name, float $x, float $y, float $size = 10, array $options = []): static
Aggiunge un campo pulsante radio come parte di un gruppo nominato.
listboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
Aggiunge un campo di selezione listbox.
comboboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
Aggiunge un campo combobox dropdown.
buttonField(string $name, float $x, float $y, float $w, float $h, string $caption, string $action = ''): static
Aggiunge un campo pulsante push con un'azione JavaScript opzionale.
includeJS(string $script): static
Incorpora un'azione JavaScript a livello di documento. Eseguita all'apertura del documento.

HasSecurity

Metodi per crittografia e firme digitali.

setProtection(array $permissions = [], string $userPassword = '', string $ownerPassword = '', int $mode = 3): static
Crittografa il documento con AES-256 (mode 3). Permissions: 'print', 'copy', 'modify', 'annot-forms', ecc.
setSignature(string $certFile, string $privateKeyFile, string $password = '', string $extracertsFile = '', int $certType = 2, array $info = []): static
Applica una firma digitale PAdES. Usa certType 2 per file PKCS#12 (.p12/.pfx).

HasOutput

Metodi per il rendering del PDF finale.

save(string $path): bool
Scrive il PDF in un file. Restituisce true in caso di successo.
output(OutputDestination $destination = OutputDestination::String, string $filename = 'doc.pdf', string $path = ''): string|bool
Renderizza il PDF alla destinazione scelta: String (restituisce binario), File, Inline (browser), o Download.
toString(): string
Alias di convenienza per output(OutputDestination::String). Restituisce il binario PDF grezzo.

Vedi Anche

Rilasciato sotto licenza LGPL-3.0-or-later.