Heim  >  Artikel  >  php教程  >  PHP教程:把网页转换成PDF文件

PHP教程:把网页转换成PDF文件

WBOY
WBOYOriginal
2016-06-06 20:09:322903Durchsuche

PDF文件是我们最常见到一种文档格式,如果网站提供一个把网页保存成pdf文件,那将会大大方便很多用户:如果一时间很忙,可以保存成PDF格式文档,以后再看。而作为开发者或者站长,可以向用户以PDF文档作为载体推送网站的内容,当然,还可以把数据聚合到一个

PDF文件是我们最常见到一种文档格式,如果网站提供一个把网页保存成pdf文件,那将会大大方便很多用户:如果一时间很忙,可以保存成PDF格式文档,以后再看。而作为开发者或者站长,可以向用户以PDF文档作为载体推送网站的内容,当然,还可以把数据聚合到一个页面之后,生成一本电子书,使得数据更加聚合。在这里,我们需要使用到的是来自于pdfcrowd.com一个开源工具HTML to PDF Online API。在正式开始之前,我们需要一个API和一个用户名,大家到pdfcrowd.com自行注册,然后下载一个pdfcrowd.php待用。

引用pdfcrowd.php,并实例化类

<?php ??
//引入pdfcrowd.php文件 ??
require?'pdfcrowd.php'; ??
try{??? ??
//尝试实例化 ??
$client?=?new?Pdfcrowd("username",?"appkey"); ??
//把www.itluren.com转换成PDF ??
$pdf?=?$client->convertURI('http://www.itluren.com/'); ??
//设置响应表头 ??
//内容类型 ??
header("Content-Type:?application/pdf"); ??
//缓存 ??
header("Cache-Control:?no-cache"); ??
//访问范围 ??
header("Accept-Ranges:?none"); ??
//内容属性 ??
header("Content-Disposition:?attachment;?filename=\"itluren_com.pdf\""); ??
//输出生成的PDF文件 ??
echo?$pdf; ??
//如果有返回异常?那就保存到$why变量 ??
}catch(PdfcrowdException?$why){ ??
//输出错误 ??
echo?"Pdfcrowd?Error:?"?.?$why; ??
} ??
?>??

转换HTML代码为PDF文档

我们也可以把HTML代码直接转换成PDF文件:把$pdf?=?$client->convertURI('http://www.itluren.com/');?换成$pdf = $client->convertHtml("itluren");

转换本地HTML文件变成PDF

$pdf=$client->convertFile("/path/to/itluren.html");??

把转换好的PDF文件保存到本地

//尝试以写入模式打开itluren.pdf?如果没有这个文件则新建 ??
$out_file=fopen("itluren.pdf","wb"); ??
//转换HTML代码?并写入文件里面 ??
$client->convertHtml("itluren",?$out_file); ??
//关闭文件 ??
fclose($out_file);??

高级设置

我们还可以通过setPageWidth方法设置PDF宽度;通过setPageHeight设置PDF高度;通过setHorizontalMargin设置水平外边矩大小;通过setVerticalMargin方法设置垂直外边矩大小(也可以通过setPageMargins方法设置外边距,一共四个参数,分别对应上右下左);可以通过setFooterHtml方法设置PDF页脚,支持的参数值有%u (转换的网址)、%p (当前页面索引数值)和%n(全部页面数量)。

更多的设置

我稍微注意了一下,除了上面的方法以外,还有setFooterUrl(设置页脚URL)、setHeaderHtml(设置顶部HTML)、setHeaderUrl(设置顶部URL)、setHeaderFooterPageExcludeList(是否打印页头或页脚)、setPageNumberingOffset(PDF第一页的索引数值)、enableImages(是否支持图片)、enableBackgrounds(是否支持背景)、setHtmlZoom(缩放设置)、enableJavaScript(是否显示Javascript在PDF上面)、enableHyperlinks(是否显示超链接)、setDefaultTextEncoding(PDF默认文本编码,默认是utf-8)、usePrintMedia(是否显示CSS对应的media类型)、setEncrypted(设置是否加密,加密后搜索引擎无法识别内容)、setUserPassword(设置访客密码)、setOwnerPassword(设置所有者密码)、setNoPrint(是否禁止打印)、setNoModify(是否禁止修改)、setNoCopy(是否禁止拷贝)、setPageLayout(页面布局设置)、setPageMode(页面模式,是否打开全屏)、setInitialPdfZoomType(PDF查看时适应屏幕设置)、setInitialPdfExactZoom(初始缩放倍数)、setPdfScalingFactor(PDF缩放因素)、setPageBackgroundColor(背景颜色)、setTransparentBackground(透明背景颜色)、setAuthor(作者设置)、setWatermark(设置水印)、setWatermarkRotation(水印旋转角度)、setWatermarkInBackground(水印背景颜色)、useSSL(SSL安全设置)、numTokens(数值特征码)、setMaxPages(最大页数数值)和setFailOnNon200(返回HTTP错误)。

声明: 本文采用 BY-NC-SA 协议进行授权 | IT路人
转载请注明转自《PHP教程:把网页转换成PDF文件》

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:mysql操作类库1.2Nächster Artikel:PHP格式化输出打印变量