Skip to content

API Document

La classe Document (TcpdfNext\Core\Document) est le point d'entrée principal pour créer des documents PDF. Elle compose 12 traits, chacun contribuant un groupe de méthodes liées. Toutes les méthodes mutantes retournent static pour le chaînage fluent.

php
use TcpdfNext\Core\Document;

$pdf = Document::create()
    ->setTitle('Facture')
    ->addPage()
    ->setFont('Helvetica', size: 12)
    ->cell(width: 0, height: 10, text: 'Bonjour monde')
    ->save('/output/facture.pdf');

HasMetadata

Méthodes pour définir les métadonnées au niveau document (Title, Author, Subject, Keywords, Creator).

setTitle(string $title): static
Définir le titre du document (apparaît dans la barre de titre du lecteur PDF et XMP dc:title).
setAuthor(string $author): static
Définir l'auteur du document (XMP dc:creator).
setSubject(string $subject): static
Définir le sujet du document (XMP dc:description).
setKeywords(string|array $keywords): static
Définir les mots-clés du document. Accepte une chaîne séparée par virgules ou un tableau de chaînes.
setCreator(string $creator): static
Définir le nom de l'application créatrice (XMP xmp:CreatorTool). Par défaut 'TCPDF-Next'.

HasPages

Méthodes pour ajouter, supprimer, déplacer et configurer les pages.

addPage(?PageSize $pageSize = null, ?Orientation $orientation = null): static
Ajouter une nouvelle page. Optionnellement surcharger la taille et l'orientation par défaut pour cette page uniquement.
deletePage(int $pageNumber): static
Supprimer la page à l'index 1-based donné. Lève OutOfRangeException si la page n'existe pas.
movePage(int $from, int $to): static
Déplacer une page d'une position à une autre. Les deux index sont 1-based.
copyPage(int $pageNumber): static
Dupliquer une page et ajouter la copie après la dernière page.
setAutoPageBreak(bool $auto, float $margin = 0): static
Activer ou désactiver les sauts de page automatiques. Lorsqu'activé, une nouvelle page est ajoutée quand le contenu atteint la marge inférieure moins la valeur de marge donnée.
setMargins(float $left, float $top, float $right = -1, float $bottom = -1): static
Définir les marges de page en unités utilisateur. Si right est -1, il copie left. Si bottom est -1, il copie top.
setLeftMargin(float $margin): static
Définir la marge gauche uniquement.
setTopMargin(float $margin): static
Définir la marge haute uniquement.
setRightMargin(float $margin): static
Définir la marge droite uniquement.
setCellPadding(float $padding): static
Définir le padding interne de cellule par défaut en unités utilisateur.
setPageSize(PageSize $size): static
Définir la taille de page par défaut pour les nouvelles pages.
setOrientation(Orientation $orientation): static
Définir l'orientation de page par défaut pour les nouvelles pages.
pageCount(): int
Retourner le nombre total de pages dans le document.
currentPage(): int
Retourner le numéro de page actuelle (1-based).
setPage(int $pageNumber): static
Déplacer le curseur vers une page existante.

HasTypography

Méthodes pour la sélection de police, dimensionnement, espacement et mesure de chaînes.

setFont(string $family, string $style = '', float $size = 0): static
Sélectionner une police par nom de famille. Style peut être '' (régulier), 'B' (gras), 'I' (italique) ou 'BI'. Taille 0 garde la taille actuelle.
setFontSize(float $size): static
Définir la taille de police en points.
setFontSpacing(float $spacing): static
Définir l'espacement supplémentaire entre caractères en unités utilisateur.
setFontStretching(float $percent): static
Définir la mise à l'échelle horizontale de police en pourcentage (100 = normal).
getStringWidth(string $text, string $family = '', string $style = '', float $size = 0): float
Calculer la largeur d'une chaîne en unités utilisateur utilisant les paramètres de police donnés (ou actuels).
getCharWidth(string $char): float
Retourner la largeur d'un seul caractère en unités utilisateur.
getNumberOfLines(string $text, float $width): int
Estimer combien de lignes le texte occupera à la largeur donnée.

HasColors

Méthodes pour définir les couleurs de dessin, remplissage et texte avec transparence alpha optionnelle.

setDrawColor(int $r, int $g = -1, int $b = -1): static
Définir la couleur de trait (dessin). Passer une valeur unique pour niveaux de gris ou trois valeurs pour RGB.
setFillColor(int $r, int $g = -1, int $b = -1): static
Définir la couleur de remplissage pour formes et fonds de cellule.
setTextColor(int $r, int $g = -1, int $b = -1): static
Définir la couleur de texte.
setAlpha(float $alpha, string $blendMode = 'Normal'): static
Définir la transparence alpha (0.0 = entièrement transparent, 1.0 = entièrement opaque) et mode de mélange optionnel.
setDrawColorObject(Color $color): static
Définir la couleur de trait utilisant un value object Color (supporte RGB, CMYK, Gray, Spot).
setFillColorObject(Color $color): static
Définir la couleur de remplissage utilisant un value object Color.
setTextColorObject(Color $color): static
Définir la couleur de texte utilisant un value object Color.

HasTextOutput

Méthodes pour rendre le contenu texte sur la page.

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
Imprimer une cellule d'une ligne. La cellule peut avoir une bordure, remplissage d'arrière-plan et hyperlien optionnel.
multiCell(float $width, float $height, string $text, string|int $border = 0, Alignment $align = Alignment::Justified, bool $fill = false, int $maxLines = 0): static
Imprimer un bloc de texte multiligne avec retour à la ligne automatique.
text(float $x, float $y, string $text): static
Placer une chaîne de texte aux coordonnées exactes. Pas de retour à la ligne ou limites de cellule.
write(float $height, string $text, string $link = ''): static
Écrire du texte fluide depuis la position courante. Supporte les hyperliens inline.
writeHtml(string $html, bool $lineBreak = true, bool $fill = false, bool $resetStyles = false, string $align = ''): static
Rendre une chaîne HTML avec support CSS. Supporte balises HTML courantes, tableaux, listes et styles inline.
writeHtmlCell(float $width, float $height, float $x, float $y, string $html, string|int $border = 0, int $ln = 0, bool $fill = false): static
Rendre HTML dans une cellule positionnée.
ln(float $height = 0): static
Insérer un saut de ligne. Si height est 0, utilise la hauteur de la dernière cellule imprimée.

HasDrawing

Méthodes pour dessiner lignes, formes et flèches.

line(float $x1, float $y1, float $x2, float $y2): static
Dessiner une ligne droite entre deux points.
rect(float $x, float $y, float $w, float $h, string $style = ''): static
Dessiner un rectangle. Style : '' (trait), 'F' (remplissage), 'DF' (trait + remplissage).
roundedRect(float $x, float $y, float $w, float $h, float $r, string $roundCorner = '1111', string $style = ''): static
Dessiner un rectangle avec coins arrondis. Le masque roundCorner contrôle quels coins sont arrondis.
circle(float $x, float $y, float $r, string $style = '', array $angles = [0, 360]): static
Dessiner un cercle (ou arc) avec centre (x, y) et rayon r.
ellipse(float $x, float $y, float $rx, float $ry, float $angle = 0, string $style = ''): static
Dessiner une ellipse avec centre (x, y), rayon horizontal rx et rayon vertical ry.
polygon(array $points, string $style = ''): static
Dessiner un polygone depuis un tableau de paires de coordonnées [x, y].
arrow(float $x1, float $y1, float $x2, float $y2, int $headStyle = 0, float $armSize = 5, int $armAngle = 15): static
Dessiner une ligne avec pointe de flèche.
curve(float $x0, float $y0, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3, string $style = ''): static
Dessiner une courbe de Bézier cubique.
setLineWidth(float $width): static
Définir la largeur de ligne pour opérations de trait.
setLineCap(int $style): static
Définir le style de terminaison de ligne : 0 (butt), 1 (round), 2 (square).
setLineJoin(int $style): static
Définir le style de jointure de ligne : 0 (miter), 1 (round), 2 (bevel).

HasTransforms

Méthodes pour transformations du système de coordonnées (sauvegardées comme pile).

startTransform(): static
Sauvegarder l'état graphique actuel. Doit être apparié avec stopTransform().
stopTransform(): static
Restaurer l'état graphique sauvegardé précédemment.
rotate(float $angle, float $x = null, float $y = null): static
Faire tourner les opérations de dessin suivantes par l'angle donné (degrés) autour du point (x, y).
scale(float $sx, float $sy, float $x = null, float $y = null): static
Mettre à l'échelle les opérations de dessin suivantes. 100 = pas de changement, 200 = double taille.
translate(float $tx, float $ty): static
Translater (décaler) les opérations de dessin suivantes par (tx, ty) unités utilisateur.
skew(float $angleX, float $angleY, float $x = null, float $y = null): static
Incliner les opérations de dessin suivantes par les angles donnés (degrés).
mirror(string $axis, float $x = null, float $y = null): static
Faire un miroir des opérations de dessin suivantes selon l'axe donné ('H' horizontal, 'V' vertical).

HasLayout

Méthodes pour en-têtes, pieds de page, colonnes et mode livret.

setHeaderCallback(callable $callback): static
Enregistrer un callback invoqué en haut de chaque page. Reçoit l'instance Document.
setFooterCallback(callable $callback): static
Enregistrer un callback invoqué en bas de chaque page. Reçoit l'instance Document.
setColumnsArray(array $columns): static
Définir une mise en page multicolonne. Chaque entrée est un tableau associatif avec clés 'width' et 'margin' optionnelle.
selectColumn(int $column = 0): static
Déplacer le curseur vers la colonne spécifiée (0-based).
setBooklet(bool $enable, float $innerMargin = -1, float $outerMargin = -1): static
Activer le mode livret (piqûre à cheval) avec marges intérieure et extérieure configurables.
setPrintHeader(bool $print): static
Activer ou désactiver l'en-tête sur les pages suivantes.
setPrintFooter(bool $print): static
Activer ou désactiver le pied de page sur les pages suivantes.

HasNavigation

Méthodes pour signets, table des matières, liens, annotations et pièces jointes.

bookmark(string $title, int $level = 0, float $y = -1, int $page = 0, string $style = '', Color $color = null): static
Ajouter un signet (entrée plan). Level 0 est le niveau supérieur ; valeurs plus élevées créent des enfants imbriqués.
addTOC(int $page = 0, string $numberFormat = '', string $filler = '.'): static
Générer une table des matières depuis tous les signets et l'insérer à la page donnée.
addLink(): int
Créer une destination de lien interne et retourner son identifiant.
setLink(int $linkId, float $y = 0, int $page = -1): static
Définir la destination pour un lien interne créé précédemment.
annotation(float $x, float $y, float $w, float $h, string $text, array $options = []): static
Ajouter une annotation texte au rectangle donné.
addFileAttachment(string $filePath, string $description = '', string $name = ''): static
Joindre un fichier au document. Supporte fichiers associés PDF/A-3.

HasInteractive

Méthodes pour champs de formulaire AcroForm et JavaScript.

textField(string $name, float $x, float $y, float $w, float $h, array $options = []): static
Ajouter un champ de saisie texte à la position donnée.
checkboxField(string $name, float $x, float $y, float $size = 10, bool $checked = false): static
Ajouter un champ case à cocher.
radioField(string $name, float $x, float $y, float $size = 10, array $options = []): static
Ajouter un champ bouton radio comme partie d'un groupe nommé.
listboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
Ajouter un champ de sélection listbox.
comboboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
Ajouter un champ combobox déroulant.
buttonField(string $name, float $x, float $y, float $w, float $h, string $caption, string $action = ''): static
Ajouter un champ bouton poussoir avec action JavaScript optionnelle.
includeJS(string $script): static
Intégrer une action JavaScript au niveau document. Exécutée à l'ouverture du document.

HasSecurity

Méthodes pour chiffrement et signatures numériques.

setProtection(array $permissions = [], string $userPassword = '', string $ownerPassword = '', int $mode = 3): static
Chiffrer le document avec AES-256 (mode 3). Permissions : 'print', 'copy', 'modify', 'annot-forms', etc.
setSignature(string $certFile, string $privateKeyFile, string $password = '', string $extracertsFile = '', int $certType = 2, array $info = []): static
Appliquer une signature numérique PAdES. Utiliser certType 2 pour fichiers PKCS#12 (.p12/.pfx).

HasOutput

Méthodes pour rendre le PDF final.

save(string $path): bool
Écrire le PDF dans un fichier. Retourne true en cas de succès.
output(OutputDestination $destination = OutputDestination::String, string $filename = 'doc.pdf', string $path = ''): string|bool
Rendre le PDF vers la destination choisie : String (retourner binaire), File, Inline (navigateur) ou Download.
toString(): string
Alias de commodité pour output(OutputDestination::String). Retourne le binaire PDF brut.

Voir aussi

Distribué sous licence LGPL-3.0-or-later.