zoukankan      html  css  js  c++  java
  • tp5导出生成pdf

    准备工作:

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

    简介:

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

    下载TCPDF然后放到vendor目录下面

    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的示例

    Getpdf.php

    <?php
    namespace appindexcontroller;
    use thinkController;
    vendor('Pdf');
    class Getpdf extends Controller
    {
    public function index()
    {
    $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('', '', 10);
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    // Print a table

    // add a page
    $pdf->AddPage();

    // 随便写HTML
    $html = '<div>dd<img src="https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3300305952,1328708913&fm=27&gp=0.jpg" /></div>';

    // output the HTML content
    $pdf->writeHTML($html, true, false, true, false, '');

    // reset pointer to the last page
    $pdf->lastPage();
    ob_end_clean();

    $pdf->Output();

    }
    }

    //只要前端把HTML代码传递过来,就能生成PDF文档
    注意:在输出之前清空 ob_end_clean()
  • 相关阅读:
    Spring Boot----freemark使用
    vue----解决跨域问题
    CSS----精灵图
    Spring MVC----文件上传
    Mybatis----Mybatis使用
    Django url引用异常
    Django ORM异常
    django sqlite3 报错问题
    爬虫 requests的超时和重试
    python 异常 NameError: name 'ModuleNotFoundError' is not defined
  • 原文地址:https://www.cnblogs.com/ymdphp/p/11022559.html
Copyright © 2011-2022 走看看