Développement

Créez facilement des PDF en PHP

Créer de fichiers PDF en PHP c’est facile maintenant

Ici, je vais vous écrire à propos de deux classes de création de PDF en PHP. Il s’agit de FPDF et TCPDF. Alors, vous pourrez générer facilement des fichiers PDF
FPDF est plus petit en taille par rapport à TCPDF, mais dans les fonctionnalités, TCPDF gagne, car il a beaucoup plus de caractéristiques et de fonctionnalités.

Si vous voulez des fonctionnalités très avancées dans la création de PDF, donc TCPDF est pour vous. Et, si vous voulez des fonctionnalités juste minimales de création de PDF et que vous voulez une taille de fichier plus petit, alors FPDF est pour vous.
La Bibliothèque FPDF: Le générateur de PDF
Voici ce que le site de FPDF a à dire à propos de lui-même:
FPDF est une classe PHP qui permet de générer des fichiers PDF avec PHP pur, c’est-à-dire sans utiliser la bibliothèque PDFlib. F de FPDF signifie gratuit: vous pouvez l’utiliser pour tout type d’utilisation et le modifier en fonction de vos besoins.
FPDF a d’autres avantages: fonctions de haut niveau. Voici une liste de ses principales caractéristiques:

– Choix de l’unité de mesure, format de la page et marges
– Gestion de tête de page et de bas de page
– Saut de page automatique
– Saut de ligne automatique et justification du texte
– Il supporte (JPEG, PNG et GIF)
– Couleurs
– Liens
– TrueType, Type1 et l’encodage de soutien
– Page compression

FPDF ne nécessite pas d’extension (sauf zlib pour activer la compression et GD pour le soutien de GIF). Il fonctionne avec PHP 4 et PHP 5.

Voici un exemple de code pour générer un fichier PDF

[php]
<?php
require(‘fpdf.php’);

class PDF extends FPDF
{
//Page header
function Header()
{
//Logo
$this->Image(‘logo_pb.png’,10,8,33);
//Arial bold 15
$this->SetFont(‘Arial’,’B’,15);
//Move to the right
$this->Cell(80);
//Title
$this->Cell(30,10,’Title’,1,0,’C’);
//Line break
$this->Ln(20);
}

//Page footer
function Footer()
{
//Position at 1.5 cm from bottom
$this->SetY(-15);
//Arial italic 8
$this->SetFont(‘Arial’,’I’,8);
//Page number
$this->Cell(0,10,’Page ‘.$this->PageNo().’/{nb}’,0,0,’C’);
}
}

//Instanciation of inherited class
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont(‘Times’,»,12);
for($i=1;$i<=40;$i++)
$pdf->Cell(0,10,’Printing line number ‘.$i,0,1);
$pdf->Output();
?>
[/php]

DEMO DU CODE CI-DESSUS

TÉLÉCHARGER FPDF

PLUS Tutoriels et exemples (en anglais)

PHP pour PDF – TCPDF

Voici l’introduction et les principales caractéristiques de TCPDF:

Commencé en 2002, TCPDF est aujourd’hui l’un des projets Open Source les plus actifs du monde, utilisés quotidiennement par des millions d’utilisateurs et inclus dans des milliers de CMS et applications Web. TCPDF est une classe PHP pour générer des documents PDF sans nécessiter des extensions externes. TCPDF supporte l’UTF-8, Unicode, langues RTL, XHTML, Javascript, les signatures numériques, codes-barres et beaucoup plus.
Caractéristiques principales
– Pas de bibliothèques externes sont nécessaires pour les fonctions de base;
– Tous les formats de page standard, page personnalisée formats, marges personnalisées et unités de mesure,
– Unicode UTF-8 et langages droite à gauche,
– TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 et polices CID-0,
– Sous-ensembles de la police,
– Méthodes de publier certains XHTML + CSS code, Javascript et les formes;
– Images, graphique (figures géométriques) et de la transformation des méthodes,
– Il supporte les formats JPEG, PNG et images SVG natif, toutes les images prises en charge par GD et toutes les images prises    en charge via ImagMagick,
– barres 1D et 2D,
– Niveaux de gris, RVB, CMJN, Couleurs d’accompagnement et transparentes;
– Gestionn de page automatique en-tête et pied de page,
– Le chiffrement des documents jusqu’à 256 bits et certifications de signature numérique,
– Transactions to UNDO commands,
– Annotations PDF, y compris des liens, du texte et les pièces jointes;
– Modes de rendu de texte (fill, stroke and clipping),
– Mode de multiples colonnes;
– régions de page sans écriture;
– Bookmarks et table des matières,
– Text Hyphenation,
– Texte d’étirement et de l’espacement (suivi / crénage),
– Coupure automatique de page, coupure de ligne et de texte, alignements y compris une justification,
– Numérotation de page automatique et groupe des pages,
– Déplacer et supprimer des pages,
– Compression de pages (nécessite l’extension php-zlib),
– Templates XObject,

Exemple de code pour créer un fichier PDF

[php]
<?php
require_once(‘../config/lang/eng.php’);
require_once(‘../tcpdf.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 001’);
$pdf->SetSubject(‘TCPDF Tutorial’);
$pdf->SetKeywords(‘TCPDF, PDF, example, test, guide’);

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.’ 001′, PDF_HEADER_STRING);

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, », PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, », PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
$pdf->setLanguageArray($l);

// ———————————————————

// set default font subsetting mode
$pdf->setFontSubsetting(true);

// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont(‘dejavusans’, », 14, », true);

// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage();

// Set some content to print
$html = <<<EOD
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;"> <span style="color:black;">TC</span><span style="color:white;">PDF</span> </a>!</h1>
<i>This is the first example of TCPDF library.</i>
<p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p>
<p>Please check the source code documentation and other examples for further information.</p>
<p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p>
EOD;

// Print text using writeHTMLCell()
$pdf->writeHTMLCell($w=0, $h=0, $x=», $y=», $html, $border=0, $ln=1, $fill=0, $reseth=true, $align=», $autopadding=true);

// ———————————————————

// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$pdf->Output(‘example_001.pdf’, ‘I’);
?>
[/php]

TÉLÉCHARGER TCPDF
PLUS Tutoriels et exemples (an anglais)

Vous pouvez utiliser l’une ou le deux en fonction de vos exigences.