mpdf中文开发使用

官网URL:http://www.mpdf1.com/mpdf/index.php

github:https://github.com/mpdf/mpdf

官方开发手册,英文的:http://www.mpdfonline.com/repos/mpdfmanual.pdf

网页版 https://mpdf.github.io/

要求

mPDF 7.0 requires PHP ^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0. PHP mbstring和gd扩展必须加载。

对于某些高级功能,可能需要其他扩展,例如用于压缩输出的zlib和用于生成条形码的bcmath或用于字符集转换和SVG处理的xml等嵌入式资源。

mPDF在使用单线程服务器(如php-s)获取外部HTTP资源时遇到一些问题。推荐使用适当的服务器,如nginx(php-fpm)或Apache。

Support us

Consider supporting development of mPDF with a donation of any value. Donation button can be found on the main page of the documentation.

安装

官方安装方法是通过composer and its packagist package mpdf/mpdf.

 composer require mpdf/mpdf


使用

库的最简单的用法(从版本7.0开始)如下:

require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();


这将输出PDF作为应用程序/ PDF内容类型的PDF内联类型。

设置和配置

所有配置指令都可以通过构造函数的$ config参数来设置。

建议通过tempDir配置变量设置自己的临时目录。对于使用mPDF(通常为cli,webserver,fpm)的用户,该目录必须具有写权限(建议使用775模式)。

$mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/tmp']);

 

默认情况下,临时目录将位于vendor目录中,并且将具有来自post_install作曲家脚本的正确权限。

有关自定义临时目录的更多信息,请参阅手册中“安装和设置”一节中有关“临时文件的文件夹”的说明。

laravel的另一种安装方法

在composer.json加上

"autoload": {
        "classmap": [
            "database",
            "app/Libarary/mpdf"//加上
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Tools.php",
            "app/WeiXin.php"
        ]
    },

 

吧mpdf放在目录 app/Libarary/下,我的版本是php5.6,so

在网站根目录运行

composer dumpautoload  

实例demo

注意:mpdf对复杂的table布局,基本可以完全兼容,简单的div+css也可以,但是建议table

 

use mPDF; //引入

$mpdf = new mPDF('utf-8', 'A4', 16, '', 10, 10, 15, 1);
$mpdf->SetDisplayMode('fullpage');
$mpdf->autoScriptToLang = true;//加上这两行,才正常输出中文。!!!
$mpdf->autoLangToFont = true;//加上这两行,才正常输出中文。!!!
//$stylesheet = file_get_contents('mpdfstyletables.css');
//$mpdf->WriteHTML($stylesheet,1);    // The parameter 1 tells that this is css/style only and no body/html/text
$file = 'images/seal/150.png';
// $mpdf->WriteHTML($contract_content, 2);
$mpdf->WriteHTML($html, 2);
$mpdf->Image($file, 140, 200); //追加盖章图片,貌似可以获取远程的,非必要请使用服务器本地的,以前tcpdf就是无法获取远程的,mpdf未测试远程图片
$mpdf->Output('mpdf.pdf', 'I'); //D是下载

 

 下面有pdf实际效果,文件在100-200K,比较小,有盖章图片会大一点,请注意网页定义的像素和pdf显示效果有差异,建议生成之后打印看实际效果

需要注意的是,这个页面是找前端先把页面直接table布局先写出来,在慢慢调整出来,在ueditor上效果基本一样,可以随时修改文件,但是不能自由编辑,因为是table布局,如果不小心把布局删除了,就会变形

虽然不是特别自由,但是可以满足业务人员,自由修改文字,变更合同

解决php7兼容问题 

Deprecated: Methods with the same name as their class will not be constructor

原因是php7不在支持同名构造函数了。

解决问题的办法比较简单,吧同名构造函数  __construct就可以

demo中报错的地方需要修改四个地方,问题都是一样的

 

mpdf/mpdf.php  

mpdf/classes/grad

mpdf/classes/mpdfform

mpdf/classes/cssmgr
问题就解决了,如果还有类似,找到对应文件就可以


$mpdf = new mPDF('utf-8', 'A4', 16, '', 10, 10, 15, 1);
die;

看具体报什么错误

 

函数使用和说明

 注意: 在目录下面有个examples,有很多例子可以使用

不明白为什么函数没写变量注释

$mpdf = new mPDF($mode='',$format='A4',$default_font_size=0,$default_font='',$mgl=15,$mgr=15,$mgt=16,$mgb=16,$mgh=9,$mgf=9, $orientation='P');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值