整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

手把手的教你用PHP将HTML生成PDF

ompdf是一个可以将HTML生成PD并保留样式效果的PHP第三方扩展。

下面就一步步讲解如何使用:

一、通过composer安装

composer require dompdf/dompdf


安装过程

二 、编写测试代码

(1)引用autoload.php

include 'vendor/autoload.php'; 

(2)实例化Dompdf

$dompdf=new \Dompdf\Dompdf();

(3)加载HTML

$dompdf->loadHtml($html); //$html 为HTML字符串

(4)设置纸张和方向

$dompdf->setPaper('A4', 'landscape'); //纸张大小和纸张方向

(5)生成PDF并下载

 $dompdf->render();
$dompdf->stream('数据字典.pdf');

三、导出PDF测试,发现中文乱码了


导出PDF发现中文乱码了

四、解决中文乱了问题

(1)下载支持中文的字体包放到根目录下(和vendor目录同级),这里演示使用的是阿里巴巴的普惠字体(字体格式是ttf的,小编原先下载使用的字体格式是otf格式的无效)

(2)下载dompdf字体安装工具解压到根目录(和vendor目录同级)

下载地址:https://github.com/dompdf/utils

(3)在命令行(CMD定位到根目录)下执行命令

php load_font.php "puhui" Alibaba-PuHuiTi-Light.ttf

执行成功后在路径(vendor\dompdf\dompdf\lib\fonts)下就会出现刚才的字体

(4)在样式文件中指定使用刚才安装的字体

body{font-family:puhui;}

(5)再次导出PDF测试成功


乱码问题解决

. PHP魔法的起源

PHP作为一种强大的编程语言,拥有着广泛的应用领域。而在这个数字化时代,文章采集成为了一项重要的任务。那么,PHP又是如何实现文章采集的呢?让我们揭开这个神秘面纱。

2.文章采集的意义

在信息爆炸的时代,获取有价值的文章资源显得尤为重要。而通过PHP编写的文章采集代码,可以帮助我们快速、高效地从互联网上采集到我们需要的文章内容。这不仅节省了时间和人力成本,还能够提高工作效率。

3. PHP文档解析技术

PHP文档解析技术是实现文章采集的核心。通过使用各种解析函数和库,我们可以将目标网页中的HTML或XML结构进行解析,并提取出我们需要的数据。这项技术使得PHP能够轻松应对各种网页结构和数据格式,极大地提高了文章采集的灵活性。

4.优秀的文章采集工具

除了自己编写代码,还有一些优秀的文章采集工具可以帮助我们完成这项任务。比如,PHP Simple HTML DOM Parser和Goutte等工具,它们提供了方便易用的API和丰富的功能,使得我们能够更加便捷地进行文章采集。

5.注意事项与技巧

在进行文章采集时,我们需要注意一些细节和技巧。首先,要选择合适的目标网站,并了解其网页结构和数据格式。其次,要设置合理的请求频率和并发数,以避免给目标网站带来过大的压力。此外,还要处理好异常情况和错误信息,确保采集过程的稳定性和可靠性。

6.遵守法律与道德

在进行文章采集时,我们必须遵守相关的法律法规和道德规范。不得采集他人的知识产权内容,并且要尊重原作者的权益。同时,在使用采集到的文章内容时,要注明出处并遵守相关的版权规定。

7. PHP魔法持续进化

随着互联网技术的不断发展,PHP文章采集代码也在不断进化。新的解析技术、优秀的工具和更高效的算法不断涌现,使得文章采集变得更加智能化、自动化。PHP魔法的力量将继续引领我们走向更广阔的知识海洋。

通过PHP编写的文章采集代码,让我们能够轻松获取到海量的有价值文章资源。它不仅是一种工具,更是一种魔法,帮助我们探索知识的边界。让我们一起揭开这个神奇世界的面纱,感受PHP魔法的力量吧!

日有网友希望有一篇用PHP生成PDF的文章教程,好的今天我们就讲一讲怎么样用PHP将HTML生成PDF

我们使用的开源类库就是TCPDF

GITHUB地址:

https://github.com/tecnickcom/TCPDF

composer安装:

composer require tecnickcom/tcpdf

demo示例:

https://tcpdf.org/examples/

这里主要讲的是讲HTML生成PDF因为HTML格式绝大部分够用了,其它个性化的功能大家看下官方的DEMO就行了比如生成图表等

下面说下具体使用方式:

1.实例化TCPDF对象

$pdf = new TCPDF(PDF_PAGE_ORIENTATIN, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

2.设置标题关键字等(步骤可以省略)

$pdf->SetCreator(PDF_CREATOR);

$pdf->SetAuthor('Nicola Asuni');

$pdf->SetTitle('TCPDF演示');

$pdf->SetSubject('TCPDF Tutorial');

$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

3.设置字体(这步很重要不然中文乱码)

$fontname = TCPDF_FONTS::addTTFfont('Droid Sans Fallback.ttf', 'TrueTypeUnicode', '', 32);

$pdf->SetFont($fontname, '', 20);

4.添加个页面

$pdf->AddPage();

5.将HTML生成PDF

$pdf->writeHTML($html);

6.输出(默认直接在浏览器显示)

$pdf->Output();

$pdf->Output('123.pdf','D');//这个是下载,其他方式请替换参数

7.生成后的效果

链接列表等演示

生成图片演示

表格演示

最后总结:

1.一定要设置字体,否则中文乱码。最好使用文本的设置方法和字体。网上的设置字体的方法虽然能解决但是用pdfparser这个类读取生成后的PDF内容还是乱码(读取PDF内容的方法在我另一篇文章中有说到)

2.如果你设置了PDF的头和脚 还需在设置一遍字体

$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PDF头部标题', '代码庸医');

$pdf->setHeaderFont(Array($fontname, '', PDF_FONT_SIZE_MAIN));