TCPDF
Bibliothèque PHP pour la création et l'édition de documents PDF
API PHP Open Source pour générer des documents PDF, sous-location de polices, images JPEG ou PNG et SVG, prise en charge native, prise en charge des codes-barres 1D et 2D.
Le TCPDF est une bibliothèque PHP open source qui donne aux développeurs de logiciels la possibilité de générer des documents PDF à l'aide de commandes PHP sans aucune dépendance externe. L'avantage de TCPDF est qu'il est considéré comme la seule bibliothèque basée sur PHP qui inclut une prise en charge complète de l'Unicode UTF-8 et des langues de droite à gauche.
La bibliothèque prend en charge plusieurs fonctionnalités importantes telles que la création de documents PDF, la sous-location de polices, la prise en charge des images et des graphiques, la prise en charge native des images JPEG, PNG et SVG, la prise en charge des codes-barres 1D et 2D, la gestion de l'en-tête et du pied de page PDF, la prise en charge du cryptage et du décryptage, PDF annotations, table des matières, modes de rendu de texte, formats de page personnalisés, marges personnalisées, unités de page et bien plus encore.
La bibliothèque est considérée comme l'une des bibliothèques PHP les plus populaires et les plus utilisées au monde car elle a été incluse dans les CMS et applications PHP les plus populaires, notamment Joomla, Drupal, Moodle, phpMyAdmin, etc.
Premiers pas avec TCPDF
TCPDF est disponible sur packagist.org, vous pouvez donc utiliser le composer pour télécharger cette bibliothèque et toutes les dépendances. Veuillez utiliser la commande suivante pour une installation fluide.
Installer la commande TCPDF
Install Package TCPDF
Générer des documents PDF à l'aide de la bibliothèque PHP
La bibliothèque PHP gratuite TCPDF a inclus la fonctionnalité qui permet aux programmeurs de logiciels de créer par programmation des documents PDF dans leurs propres applications PHP. Vous pouvez utiliser l'encodage utf-8 ainsi que la prise en charge des langues de droite à gauche. Plusieurs fonctionnalités importantes telles que la sélection du type et de la taille de la police, les marges personnalisées, les unités de mesure, l'ajout de code-barres, l'ajout d'un tableau, l'insertion de pages, le déplacement de la page, la suppression de pages, etc.
Créer des documents PDF via PHP
// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->setCreator(PDF_CREATOR);
$pdf->setAuthor('Nicola Asuni');
$pdf->setTitle('TCPDF Example 038');
$pdf->setSubject('TCPDF Tutorial');
$pdf->setKeywords('TCPDF, PDF, example, test, guide');
Prise en charge des codes-barres dans les fichiers PDF via PHP
La bibliothèque PHP open source fournit des fonctionnalités permettant d'inclure des codes-barres dans des documents PDF à l'aide de quelques lignes de code PHP. Les développeurs peuvent utiliser facilement différents types de codes-barres 1D (CODE 39, CODE 128 AUTO, EAN 8, UPC-E, MSI, CODABAR, CODE 11, RMS4CC) et de codes-barres 2D (QR-Code, Datamatrix ECC200 et PDF417). Il prend également en charge des fonctionnalités telles que la définition de la hauteur du code-barres, l'alignement du code-barres, la définition des marges, l'application d'une somme de contrôle, etc.
Créer des documents PDF via PHP
$pdf->SetFont('helvetica', '', 10);
// define barcode style
$style = array(
'position' => '',
'align' => 'C',
'stretch' => false,
'fitwidth' => true,
'cellfitalign' => '',
'border' => true,
'hpadding' => 'auto',
'vpadding' => 'auto',
'fgcolor' => array(0,0,0),
'bgcolor' => false, //array(255,255,255),
'text' => true,
'font' => 'helvetica',
'fontsize' => 8,
'stretchtext' => 4
);
// PRINT VARIOUS 1D BARCODES
// CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9.
$pdf->Cell(0, 0, 'CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9', 0, 1);
$pdf->write1DBarcode('CODE 39', 'C39', '', '', '', 18, 0.4, $style, 'N');
$pdf->Ln();
// CODE 39 + CHECKSUM
$pdf->Cell(0, 0, 'CODE 39 + CHECKSUM', 0, 1);
$pdf->write1DBarcode('CODE 39 +', 'C39+', '', '', '', 18, 0.4, $style, 'N');
$pdf->Ln();
// CODE 39 EXTENDED
$pdf->Cell(0, 0, 'CODE 39 EXTENDED', 0, 1);
$pdf->write1DBarcode('CODE 39 E', 'C39E', '', '', '', 18, 0.4, $style, 'N');
$pdf->Ln();
Ajouter des en-têtes/pieds de page personnalisés en PDF
Les en-têtes et pieds de page sont des parties très utiles d'un document PDF qui aident les utilisateurs à organiser leurs fichiers PDF et à les lire plus facilement. La bibliothèque open source TCPDF facilite le travail des développeurs en incluant des fonctionnalités permettant d'ajouter des en-têtes et des pieds de page personnalisés aux documents PDF avec seulement quelques lignes de code PP. Il prend en charge des fonctionnalités telles que la définition des polices pour les en-têtes et les pieds de page, la définition des marges, les sauts de page automatiques, l'ajout d'images dans l'en-tête/le pied de page, l'ajout de numéros de page, etc.
Définir des en-têtes/pieds de page personnalisés en PDF via PHP
// Extend the TCPDF class to create custom Header and Footer
class MYPDF extends TCPDF {
//Page header
public function Header() {
// Logo
$image_file = K_PATH_IMAGES.'logo_example.jpg';
$this->Image($image_file, 10, 10, 15, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
// Set font
$this->SetFont('helvetica', 'B', 20);
// Title
$this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M');
}
// Page footer
public function Footer() {
// Position at 15 mm from bottom
$this->SetY(-15);
// Set font
$this->SetFont('helvetica', 'I', 8);
// Page number
$this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
}
Créer une table des matières
La bibliothèque PHP open source TCPDF fournit des fonctionnalités pour créer une table des matières dans leurs applications. Les utilisations d'une table des matières aident les lecteurs à comprendre la structure des documents et peuvent trouver rapidement l'information qu'ils recherchent. Pour créer une table des matières, vous devez ajouter une nouvelle page pour la table des matières et pouvez écrire le titre de la table des matières et/ou d'autres éléments sur la page de la table des matières. Vous pouvez également définir facilement des styles pour différents niveaux de signet pour divers éléments HTML.
Comment ajouter une table des matières dans un PDF via PHP
// add a new page for TOC
$pdf->addTOCPage();
// write the TOC title
$pdf->SetFont('times', 'B', 16);
$pdf->MultiCell(0, 0, 'Table Of Content', 0, 'C', 0, 1, '', '', true, 0);
$pdf->Ln();
$pdf->SetFont('dejavusans', '', 12);
// add a simple Table Of Content at first page
// (check the example n. 59 for the HTML version)
$pdf->addTOC(1, 'courier', '.', 'INDEX', 'B', array(128,0,0));
// end of TOC page
$pdf->endTOCPage();
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output('example.pdf', 'I');
Gérer les annotations PDF via la bibliothèque PHP
Les annotations sont un ensemble complet d'objets qui peuvent être ajoutés aux pages PDF sans altérer le contenu de la page. Cela aide en outre à expliquer son contenu ou à développer ce qui est déjà présent. La bibliothèque PHP open source TCPDF fournit des supports pour une variété d'annotations telles que les annotations de texte, les annotations de lien, le marquage de texte, les annotations de tampon, etc.
Ajouter des annotations PDF texte via PHP
// set font
$pdf->SetFont('times', '', 16);
// add a page
$pdf->AddPage();
$txt = 'Example of Text Annotation.
Move your mouse over the yellow box or double click on it to display the annotation text.';
$pdf->Write(0, $txt, '', 0, 'L', true, 0, false, false, 0);
// text annotation
$pdf->Annotation(83, 27, 10, 10, "Text annotation example\naccented letters test: àèéìòù", array('Subtype'=>'Text', 'Name' => 'Comment', 'T' => 'title example', 'Subj' => 'example', 'C' => array(255, 255, 0)));
// ---------------------------------------------------------
//Close and output PDF document
$pdf->Output('example.pdf', 'I');