当前位置: 首页 > news >正文

使用mpdf生成pdf文件

本文主要需求是将html页面转换为pdf文档

1、安装mpdf工具类 (composer方式)

composer require mpdf/mpdf:8.0.3

2、控制器里调用

<?php

/**
  * 生产pdf 方法一
  *
  */
public function create_pdf(){
     //$mpdf = new \Mpdf\Mpdf();
     
    $mpdf = new \Mpdf\Mpdf([
    'mode' => 'UTF-8', 'format' => 'A4', 'default_font_size' => 40, 'default_font' => '', 'margin_left' => 20, 'margin_right' => 20
  ]);
    $mpdf->autoScriptToLang = true;//支持中文设置 
    $mpdf->autoLangToFont = true;//支持中文设置 
    $mpdf->WriteHTML('<h1>你好啊,世界!hello word</h1><p style="color: blue;fontsize:14px;">http://www.baidu.com</p>');
    $path = FILE_UPLOAD.date('YmdHis').'_'.mt_rand(1,5).'.pdf';         
    $mpdf->Output();//直接在页面显示pdf页面内容 
    //$mpdf->Output($path,'f');//保存pdf文件到指定目录  
} 

  /**
   * 生产pdf 方法二
   *
   */
  public function createFileToPdf($data){
     $ext = "pdf";
     $filename = microtime(true) . '.' . $ext;
     $filepath = $this->createSavePath('supervise');  //根据年月日创建目录
     $full_name = BASEPATH . $filepath . $filename;  //文件完整路径

     //实例化mpdf
     $mpdf = new Mpdf();

     //设置字体,解决中文乱码
     $mpdf->autoLangToFont = true;
     $mpdf->autoScriptToLang = true;
     
     $html = <<<HTML
    <style>
            p {
                text-align: center;
            }
            
        </style>
        <p style="text-align: center;font-size: 24px;">协助单{$data['date']}</p>
        <p>协助单位:{$data['depart_name']}</p>
        <p><a href="{$data['license_plate_img']}" > <img height="150" src="{$data['license_plate_img']}" alt="" srcset=""></a></p>
        
        <p>{$data['require_text']}</p>
    HTML;
      $mpdf->WriteHTML($html);
     // $res =  $mpdf->Output($full_name,'S');  //输出文件流
     $mpdf->Output($full_name);
     $res_data = [
         'path' => $full_name,
         'url' => 'https://' .WEB_IP. $filepath . $filename,
         'file_name' => $filename,
     ];
     return $res_data;
   }
    
   /**
     * 创建目录
     * @param $dir   目录名称
     * @return bool
     */
    protected function createSavePath($dir)
    {
        //$upload_path = $this->config['EXPORT_PATH'];  //上传路径
        $export_path = "/export_file/";
        $filepath = $export_path . $dir . '/' . date('Ymd') . '/';
        if (!file_exists(BASEPATH . $filepath)) {
            mkdir(BASEPATH . $filepath, 0777, true);
        }
        return $filepath;
    }

?>

注:这里PDF插入图片  图片需要正常访问,已经生成pdf 后,该图片与PDF中的图片已经不存在关联了,所以生成pdf 后,原图片如果被删除了,不影响PDF文件中图片的正常显示!

相关文章:

  • 网站建设云解析dns有什么用/长春seo代理
  • 电商类网站如何做自动化测试/谷歌浏览器搜索入口
  • 公司网站用哪个软件做/seo查询排名软件
  • 江苏城乡建设部网站/没经验可以做电商运营吗
  • 建设外贸b2c网站/网站多少钱
  • 平台企业/产品seo优化
  • 全国数据治理认证DAMA-CDGA/CDGP(线上班)招生简章
  • 如何在Angular框架中更好地使用字体?一篇文章解答!
  • 3.2 多级放大电路的动态分析
  • 如何将敏捷开发与V模型深度融合?这家企业给出答案
  • 融合多头注意力机制的网络恶意流量检测
  • Allegro如何任意角度走线操作指导
  • Pytorch~ONNX
  • 朴素贝叶斯
  • Torch计算方法
  • 实用新型专利材料
  • 玩以太坊链上项目的必备技能(修改器 [modifier]-Solidity之旅十五)
  • Python isalpha()、isdigit()、isalnum() 与 isspace() 方法