Maison  >  Article  >  développement back-end  >  Comment créer une page pdf en php

Comment créer une page pdf en php

小云云
小云云original
2018-03-29 15:06:461799parcourir


FPDF signifie "PDF gratuit". La bibliothèque de classes FPDF fournit des fonctions de création de PDF de base, et son code source et ses droits d'utilisation sont gratuits. Cet article vous explique principalement comment créer des pages pdf en php, j'espère qu'il pourra vous aider.

Avantages des documents au format PDF

  1. Universel : les documents PDF peuvent être utilisés normalement sur les systèmes UNIX et Windows.

  2. Sécurité : les documents PDF peuvent être définis en mode lecture seule, et des mots de passe et d'autres mesures de protection peuvent être ajoutés.

  3. Magnifique : les documents PDF sont largement compatibles avec l'encodage chinois et conservent la mise en page actuelle.

  4. Exquis : dans la plupart des cas, la génération de documents PDF réduira la taille du fichier.

Téléchargement de la bibliothèque de classes FPDF

  • Adresse de téléchargement de la bibliothèque de classes FPDF : http://www.fpdf.org/

  • Adresse de téléchargement du plug-in chinois de la bibliothèque de classes FPDF : http://www.fpdf.org/download/chinese.zip

Configuration de la bibliothèque de classes FPDF

  1. Téléchargez le fichier FPDF.

  2. Extraire le fichier compressé téléchargé dans le répertoire racine du projet.

  3. Référencez la bibliothèque de classes FPDF dans le projet (code ci-dessous).

<?phpdefine(&#39;FPDF_FONTPATH&#39;,&#39;font/&#39;);require_once(&#39;fpdf/fpdf.php&#39;);?>

Opérations spécifiques de la bibliothèque de classes FPDF

Créer un objet

new FPDF([string page-orientation [, string measure-unit [, string page-format]]]);

/*  
    page-orientation:可选参数,表示PDF文档为横向或纵向,默认 P
        取值:P:纵向 L:横向
    measure-unit:可选参数,表示计量单元,默认 mm
        取值:pt:点     mm:毫米       cm:厘米       in:英寸
    page-format:可选参数,纸张类型,默认 A4
        取值: A4、A5、Letter等
*/

Ajouter une nouvelle page

void AddPage([string page-orientation]);/*  
    page-orientation:可选参数,表示PDF文档为横向或纵向,默认 P
        取值:P:纵向 L:横向
*/

Définir la police

void SetFont(string font [, string style [, float size]]);/*
    font:表示字体;
    style:可选参数,表示样式,默认为普通样式;
        取值:B:粗体     I:斜体        U:下划线
    size:可选参数,表示字体大小,默认为12pt;
*/

Ajouter des cellules

void Cell(float width, float height, string txt, int border, int ln, string align, boolean fill, string link);/*
    width:增加单元格宽度。
    height:增加单元格高度。
    str:放置在单元格中的文本。
    border:单元格边框。
    ln:换行高度,默认为0,即换一行。
    align:对齐方式,默认居左,R时居右,C时居中。
    fill:是否颜色填充,默认false。
    link:添加链接,默认无链接.

    * Cell()函数是FPDF中输出文字的主要方式之一。
*/

Document de sortie

String Output([string name [, string dest]]);
/*
    name:可选参数,表示要储存的文件名。
    dest:可选参数,操作内容。
        取值:        I:将PDF文档直接在浏览器中显示。        D:下载PDF文档。
        F:保存为本地文件。
        S:返回一个字符串值。
*/

Insérer une image

void Image(string file, float x, float y float width, float height);/*
    file:图片路径。
    x:图片位置的横坐标。
    y:图片位置的纵坐标。
    width:图片宽度。
    height:图片高度。
*/

Résoudre le problème du chinois tronqué caractères

  1. Téléchargez le fichier Chinese.php du plug-in chinois en FPDF et créez l'objet PDF_Chinese().

  2. Définissez l'encodage de la page sur GB2312 ou utilisez la fonction iconv() pour modifier l'encodage de la chaîne.

/*示例代码如下*/<?php
    require_once(&#39;fpdf/chinese.php&#39;);    $pdf=new PDF_Chinese(&#39;P&#39;,&#39;mm&#39;,&#39;A4&#39;);    $pdf -> AddGBFont (&#39;GB&#39;,iconv("UTF-8","gbk",&#39;微软雅黑&#39;));  
    $pdf -> AddPage ();  
    $pdf -> SetFont (&#39;GB&#39;, &#39;&#39;, 20);  
    $pdf -> Cell(0,0,iconv("UTF-8","gbk",&#39;你好,世界!&#39;));    $pdf -> Write (5, iconv("UTF-8","gbk",&#39;你好,世界!&#39;));  
    $pdf -> Output();  
?>

Définissez l'en-tête et le pied de page

Définissez l'en-tête et le pied de page en remplaçant la méthode Header() et la méthode Footer() dans la classe FPDF.

<?phprequire_once(&#39;fpdf/chinese.php&#39;);class PDF extends PDF_Chinese{
    function Header(){
        $this->SetFont(&#39;GB&#39;,&#39;&#39;,10);        $this->Write(10,iconv("UTF-8","gbk",&#39;这是页眉!&#39;));        $this->Ln(20);
    }    function Footer(){
        $this->SetY(-15);        $this->SetFont(&#39;GB&#39;,&#39;&#39;,10);        $this->Cell(0,10,iconv("UTF-8","gbk",&#39;这是页脚!&#39;));
    }
}$pdf=new PDF(&#39;P&#39;,&#39;mm&#39;,&#39;A4&#39;);$pdf -> AddGBFont (&#39;GB&#39;,iconv("UTF-8","gbk",&#39;微软雅黑&#39;));  
$pdf -> AddPage ();  
$pdf -> SetFont (&#39;GB&#39;, &#39;&#39;, 20);  
$pdf -> Cell(0,0,iconv("UTF-8","gbk",&#39;你好,世界!&#39;));$pdf -> Write (5, iconv("UTF-8","gbk",&#39;你好,世界!&#39;));  
$pdf -> Output();  
?>

Définir/obtenir la position d'un élément sur la page

void setX(float x);    
//设置某元素在页面的X坐标,单位为mm。如x为负数,则表示自页面右端向左的距离。void setY(float y [, boolean resetX]);    
//设置某元素在页面的Y坐标,单位为mm。如y为负数,则表示自页面底部向上的距离。若可选参数resetX为真则重置X坐标。void setXY(float x, float y);  
  //设置某元素在页面的(X,Y)坐标,规则如上,定位Y时不重置X坐标。float getX();   
   //获得某元素当前X坐标。float getY();    
   //获得某元素当前Y坐标。

Chaîne de sortie

void Write(float h, string txt [, mixed link]);/*
    h:定义字符串的行高。
    txt:指定输出字符串。
    link:可选参数,设置链接。
*/

Saut de ligne

void Ln([float h]);//h:设置行高,默认值为最后输出的行的高度。

Sortie de texte

void MultiCell(float width, float height, string txt, int border, string align, boolean fill);/*
    width:单元格宽度。
    height:单元格高度。
    txt:放置在单元格中的文本。
    border:单元格边框,默认为0。
    align:对齐方式。默认居左,R=居右,C=居中。
    fill:是否颜色填充。默认false。

    * MultiCell()函数是FPDF输出大段文字的主要方法,可自动换行。
*/

Dessiner un tableau

Utilisez la fonction Cell() pour boucler afin de créer des cellules et enfin former un tableau.

<?phprequire_once(&#39;fpdf/chinese.php&#39;);$pdf = new PDF_Chinese(&#39;P&#39;,&#39;mm&#39;,&#39;A4&#39;);$pdf -> AddGBFont();$pdf -> AddPage();$pdf -> SetFont(&#39;GB&#39;,&#39;&#39;,14);$header = array(&#39;姓名&#39;,&#39;年龄&#39;,&#39;性别&#39;,&#39;工资&#39;);$data = array();$data[0] = array(&#39;小张&#39;,&#39;24&#39;,&#39;男&#39;,&#39;5,000.00&#39;);$data[1] = array(&#39;小王&#39;,&#39;22&#39;,&#39;女&#39;,&#39;4,000.00&#39;);$width = array(40,40,40,40);for($i=0;$i<count($header);$i++){    $pdf -> Cell($width[$i],6,iconv("UTF-8","gbk",$header[$i]),1);
}$pdf -> Ln();foreach($data as $row){    $pdf -> Cell($width[0],6,iconv("UTF-8","gbk",$row[0]),1);    $pdf -> Cell($width[1],6,iconv("UTF-8","gbk",$row[1]),1);    $pdf -> Cell($width[2],6,iconv("UTF-8","gbk",$row[2]),1);    $pdf -> Cell($width[3],6,iconv("UTF-8","gbk",$row[3]),1);    $pdf -> Ln();
}$pdf -> Output();?>

Notes

  • Certaines informations contiennent la méthode Open() de la bibliothèque de classes FPDF, mais elles ne sont pas réellement incluses dans la bibliothèque de classes. L'utilisation de la méthode Open() provoquera une erreur.

  • Lors de l'utilisation de la classe FPDF pour générer des fichiers PDF, le format d'encodage doit être défini sur GB2312 (ou encodage lié au Go), sinon même si la classe PDF_Chinese est héritée, elle le sera toujours brouillé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn