MPDF 使用攻略(如何使用图片,表格)

1 篇文章 0 订阅
1 篇文章 0 订阅

官方英文手册>>地址

安装使用

//通过官方composer引入
$ composer requrie mpdf/mpdf
//简易用法
<?php
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>'); //写入html代码
$mpdf->Output(); //输出 pdf文档

样式问题

虽然mpdf支持绝大部分的css样式,但是还是有一些常用的样式支持的不太友好,比如 浮动定位

文字和一些基本的样式我不再赘述,这里主要讲一下如何实现以下几种情况

列表

通常我们在HTML中使用列表的方式无非是 ulli ,但是当我们使用横排列表时,是需要使用到浮动的属性,但是浮动并不是那么友好,所以这里我建议使用表格,使用表格时注意要在trstyle加上height属性。

右浮动

在html可以随意使用向右浮动,但是在mpdf中不行, 所以我们用文本右对齐的方式或者使用pading-left来实现有浮动效果,因为大多都是生成固定大小pdf,所以也不用担心页面的自适应问题,只要我们的样式在A4纸上没有问题就可以了

图片

在mpdf中使用图片是个大问题,不能浮动,不能随意的当背景,不能定位,总之图片不能随意使用
解决方案有三种

1.使用图片水印

$mpdf->SetWatermarkImage('../images/background.jpg');
$mpdf->showWatermarkImage = true;

缺点是当pdf大于一张时,图片会在每一张pdf的同样位置显示

2.使用mpdf中提供的Image()方法,使用方式:

$mpdf->Image('files/images/frontcover.jpg', 0, 0, 210, 297, 'jpg', '', true, false);

3.使用html的方式(推荐)
使用方式,尽量把这个div放在body下面 因为mpdf相对定位比较奇怪,
当你的pdf为多张时,你的图片在第几张pdf中,就尽量把图片放在那一张的html附近并且是在body下面,调试位置时,你的top属性是相对当前pdf页面计算的,例如你的图片放在第二张pdf最上方,只需要把你的图片放在第二张html元素附近,并把style中的top值设为0就可以了

<div style="position: absolute; left:0; right: 0; top: 0; bottom: 0;">
    <img src="/files/images/frontcover.jpg" 
         style="width: 210mm; height: 297mm; margin: 0;" />
</div>

以后有机会更新…

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值