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

thinkphp使用dompdf导出pdf(html转pdf)

目录

  • 一 、安装
  • 二、安装字体(解决无法输出中文)
  • 三、使用
      • 3.1 示例
      • 3.2 入参声明
      • 3.3 调用声明
  • 四、总结

一 、安装

命令行安装:

composer require dompdf/dompdf

下载 GitHub Dompdf库

二、安装字体(解决无法输出中文)

因为dompdf类库不支持中文,所有要下载一个字体: simsun.ttf

然后下载加载字体的基类 load_font.php 放在与libsrc同一目录下。

我的路径是 \dompdf\vendor\dompdf\dompdf 自行寻找一下

类下载路径:https://github.com/dompdf/utils

字体load_font.php 放到同一目录下后运行命令行安装字体:

php load_font.php simsun simsun.ttf

这样就可以导出使用了。

三、使用

3.1 示例

	/**
     * Notes:
     * By: Tommy
     * DateTime: 2022/9/2 15:49
     * @param        $html       html字符串
     * @param int    $height     pdf高度
     * @param int    $width      pdf宽度   
     * @param string $file_name  pdf文件名
     */
    public function setPdf($html, $height = 800, $width = 800, $file_name = '')
    {
		//引用类库
        require_once dirname(__FILE__) . '/../../../vendor/dompdf/vendor/autoload.php';
        $options = new \Dompdf\Options();
        $options->setDefaultFont('simsun');
        $options->setIsRemoteEnabled(true);
        $dompdf = new Dompdf();

        $dompdf->loadHtml($html);
        // (Optional) Setup the paper size and orientation
        //$dompdf->setPaper('A4', 'landscape');
        $dompdf->setPaper(array(0, 0, $height, $width), 'landscape');
        $options = $dompdf->getOptions();
        // Render the HTML as PDF
        $dompdf->render();
        $dompdf->stream($file_name);
        die();
    }

3.2 入参声明

  • $html 生成的html字符串
  • $height pdf 文件的高度
  • $width pdf 文件的宽度
  • $file_name pdf 文件名

3.3 调用声明

  • $options->setDefaultFont('simsun');

    声明默认字体为:sinmsun (可以输出中文)

  • $options->setIsRemoteEnabled(true);

    设置图片可以访问线上 默认是 false

  • $dompdf->loadHtml($html);

    记载需要生成pdf的html文件/字符串

  • $dompdf->setPaper('A4', 'landscape');

    设置纸张大小为A4纸

    ps:这里注意dompdf不支持分页 如果用A4格式 超出部分会不显示,文档中也有声明:在这里插入图片描述
    如果需要生成的pdf内容不确定 或者大于A4大小 那就需要自定义纸张大小

     $dompdf->setPaper(array(0, 0, $height, $width), 'landscape');
    

    数组中的参数可以随意定义 可以满足较多条件使用

  • $dompdf->render();

    将HTML呈现为PDF

  • $dompdf->stream($file_name);

    将生成的PDF输出到浏览器 $file_name 不能为空 ,如果不定义文件名可以直接 $dompdf->stream();

四、总结

整体用下来还是不错的 使用起来还可以

注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
看文档
看文档
看文档
文档地址:https://github.com/dompdf/dompdf#quick-start

相关文章:

  • go的解析命令行库go-flags
  • 让所有GUI都自动化-PyAutoGUI(GUI自动化工具)
  • 备份系统运行数据采集及分析方法
  • java ssm教师工作量统计系统
  • 关于内存条的知识要点⑴
  • 银行数据中心绿色发展新格局:建设全闪数据中心
  • Java毕业设计-会议室预约小程序系统
  • 一文搞定Linux的定时器(19)
  • 物联网的常用几种协议
  • URDMA跑起来
  • 商业银行云模式下的技术变革
  • go的解析命令行库flag
  • idea jsp文件 高亮_有了这几款idea插件后,同事再也不叫我小白了
  • 猿创征文|Mybatis注解完成增删改查操作
  • Code For Better ---- 拥抱TensorFlow 拥抱未来
  • 【RocksDB】TransactionDB源码分析
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CAP理论的例子讲解
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • HTTP 简介
  • JavaScript异步流程控制的前世今生
  • JAVA之继承和多态
  • js ES6 求数组的交集,并集,还有差集
  • Js基础——数据类型之Null和Undefined
  • Redis字符串类型内部编码剖析
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何学习JavaEE,项目又该如何做?
  • 我建了一个叫Hello World的项目
  • 详解移动APP与web APP的区别
  • 小李飞刀:SQL题目刷起来!
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • (39)STM32——FLASH闪存
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (LeetCode C++)盛最多水的容器
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (差分)胡桃爱原石
  • (附源码)ssm码农论坛 毕业设计 231126
  • (区间dp) (经典例题) 石子合并
  • (全注解开发)学习Spring-MVC的第三天
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转载)虚函数剖析
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 中的轻量级线程安全
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net2005怎么读string形的xml,不是xml文件。
  • // an array of int
  • [ActionScript][AS3]小小笔记
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [JS] 常用正则表达式集(一)