Snappy:卓越的Web页面转换工具

Snappy:卓越的Web页面转换工具

Snappy是一个PHP库,用于从URL或HTML页面生成缩略图、快照或PDF文件。它依赖于基于WebKit的优秀软件wkhtmltopdf和wkhtmltoimage,这些工具在OSX、Linux和Windows上都可使用。

在开始使用之前,请确保下载wkhtmltopdf的0.12.x版本。

除了基本的库之外,还有针对Symfony的knplabs/knp-snappy-bundle,Laravel的barryvdh/laravel-snappy以及Zend Framework的mvlabs/mvlabs-snappy等集成解决方案。

安装与Composer

通过以下命令,你可以轻松地将Snappy添加到你的PHP项目中:

composer require knplabs/knp-snappy

使用方法

初始化Snappy很简单,如下所示:

<?php

require __DIR__ . '/vendor/autoload.php';

use Knp\Snappy\Pdf;

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf');

然后,你可以直接在浏览器中显示PDF:

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="file.pdf"');
echo $snappy->getOutput('http://www.github.com');

或者让用户下载PDF:

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="file.pdf"');
echo $snappy->getOutput('http://www.github.com');

甚至合并多个网页为一个PDF:

echo $snappy->getOutput(array('http://www.github.com','http://www.knplabs.com','http://www.php.net'));

此外,还可以从HTML生成本地PDF文件:

$snappy->generateFromHtml('<h1>Bill</h1><p>You owe me money, dude.</p>', '/tmp/bill-123.pdf');

配置选项

Snappy支持传递各种选项给wkhtmltopdf,例如禁用JavaScript、设置封面、生成目录等:

$snappy->setOption('disable-javascript', true);
$snappy->setOption('no-background', true);
$snappy->setOption('allow', array('/path1', '/path2'));
$snappy->setOption('cookie', array('key' => 'value', 'key2' => 'value2'));
$snappy->setOption('post', array('key' => 'value'));
$snappy->setOption('cover', 'pathToCover.html');

wkhtmltopdf二进制文件作为Composer依赖项

如果你希望通过Composer安装wkhtmltopdf,可以在composer.json中添加以下内容:

composer require h4cc/wkhtmltopdf-i386 0.12.x
composer require h4cc/wkhtmltoimage-i386 0.12.x

或者在64位系统上:

composer require h4cc/wkhtmltopdf-amd64 0.12.x
composer require h4cc/wkhtmltoimage-amd64 0.12.x

然后,你可以指定路径来使用它们。

应用场景

Snappy非常适合在线文档预览、网站截图服务、电子商务中的商品图片生成、电子发票的自动化生成等多种场景。

项目特点

  • 简洁易用:Snappy提供了一个简单的API,使得开发者可以快速集成到现有项目。
  • 跨平台兼容:支持OSX、Linux和Windows操作系统。
  • 高度定制化:允许传递大量选项以自定义PDF的生成过程,如CSS样式表、页眉页脚等。
  • 社区支持:有多种框架的集成方案,并且有一个活跃的开发团队和用户群。

如果你在使用过程中遇到问题或需要帮助,可以通过详细的问题报告参与社区交流,共同解决问题。

现在就尝试用Snappy为你的项目增添新的功能吧!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强妲佳Darlene

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值