zoukankan      html  css  js  c++  java
  • PHP导出成PDF功能开发教程

    准备工作

    首先查询了相关的类库,有FPDF,zendPDF,TcPDF等等。首先看了下先选择了FPDF,可以说除了中文字符以外没有什么问题,中文乱码而且看了下最新版本没有很好的解决方案,所以只能放弃。后来就专门找支持中文的发现了TcPDF,开始也是中文字体支持不是很好,但是发现了有人做了中文的语言包才使得TcPDF更加完美起来。

    简介

    TCPDF 是一个流行的用于生成 PDF 文档的 PHP 类。TCPDF是当前唯一完整支持 UTF-8 Unicode 以及从右至左书写的语言包括双向文稿的 PHP 库。

    TCPDF说明文档

    一、首先调用TCPDF文件

    require_once('tcpdf.php');

    二、实例化TCPDF类 页面方向(P =肖像,L =景观)、测量(mm)、页面格式

     $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); 

    更多文档信息你可以查看此链接:

    https://www.cnblogs.com/520fyl/p/5396374.html

    以下是使用TCPDF的示例,做法很简单,看代码吧

    vendor('Pdf');
            $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    
            $pdf->SetCreator(PDF_CREATOR);
            $pdf->SetAuthor('sunnier');
            $pdf->SetTitle('123');
            $pdf->SetSubject('123');
            $pdf->SetKeywords('sunnier');
    
    // set default header data
            $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, 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 (optional)
            global $l;
            $pdf->setLanguageArray($l);
    
    // ---------------------------------------------------------
    
    // set font
            $pdf->SetFont('simfang', '', 10);
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    // Print a table
    
    // add a page
            $pdf->AddPage();
    
    // 随便写HTML
            $html = 'adsf';
    
    // output the HTML content
            $pdf->writeHTML($html, true, false, true, false, '');
    
    // reset pointer to the last page
            $pdf->lastPage();
            $pdf->Output('哈哈哈'.pdf', 'I');

    以上,可以不断添加addPage,添加多页,最后Output输出自己的名字的文件即可。 
    演示图: 

    可以看到其中可以插入图片也是没有问题的,写法就按照html写就OK,当然不只是支持HTML,只是这里比较适合这种方式。

    以上附资源下载

    链接: https://pan.baidu.com/s/1gfjC0yJ 

    密码: k8r8

  • 相关阅读:
    P5956[POI2017]Podzielno【数学】
    P6672[清华集训2016]你的生命已如风中残烛【结论】
    P5825排列计数【EGF,NTT】
    P3971[TJOI2014]Alice and Bob【贪心】
    P3244[HNOI2015]落忆枫音【dp】
    jquery 选中单选按钮的值
    jquery ajax 详解
    Common Lisp中的car和cdr
    publishing(android)
    Preparing for Release(发布前的准备)
  • 原文地址:https://www.cnblogs.com/qichao123/p/10949903.html
Copyright © 2011-2022 走看看