spatie/browsershot

使用无头Chrome将网页转换为图片或PDF

支持包维护!
spatie

安装量: 17,036,450

依赖项: 74

建议者: 5

安全性: 4

星标: 4,821

关注者: 63

分支: 485

4.3.0 2024-08-22 09:14 UTC

README

Social Card of Spatie's Browsershot

使用无头Chrome将网页转换为图片或PDF

Latest Version MIT Licensed run-tests Total Downloads

此包可以将网页转换为图片或PDF。转换由Puppeteer在幕后完成,它控制一个无头版本的Google Chrome。

以下是一个快速示例

use Spatie\Browsershot\Browsershot;

// an image will be saved
Browsershot::url('https://example.com')->save($pathToImage);

如果传递给save方法的路径有pdf扩展名,它将保存PDF。

// a pdf will be saved
Browsershot::url('https://example.com')->save('example.pdf');

您还可以使用任意的HTML输入,只需将url方法替换为html

Browsershot::html('<h1>Hello world!!</h1>')->save('example.pdf');

如果您的HTML输入已经在本地的文件中,请使用

Browsershot::htmlFromFilePath('/local/path/to/file.html')->save('example.pdf');

Browsershot还可以在JavaScript执行后获取HTML页面的主体

Browsershot::url('https://example.com')->bodyHtml(); // returns the html of the body

如果您想获取页面触发的所有请求的数组列表,您可以这样做

$requests = Browsershot::url('https://example.com')
    ->triggeredRequests();

foreach ($requests as $request) {
    $url = $request['url']; //https://example.com/
}

要使用Chrome的新无头模式,请传递newHeadless方法

Browsershot::url('https://example.com')->newHeadless()->save($pathToImage);

支持我们

通过观看我们的付费视频课程,了解如何创建此类包

Laravel Package training

我们在创建最佳开源包上投入了大量资源。您可以通过购买我们的付费产品之一来支持我们。

我们非常感谢您从您的家乡给我们寄明信片,说明您正在使用我们哪个包。您可以在我们的联系页面上找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上

文档

所有文档都可在我们的文档网站上找到

测试

要运行测试套件,您需要安装Puppeteer。请参阅Browsershot的要求此处。通常,npm -g i puppeteer就可以解决问题。

此外,您还需要pdftotext CLI,它是poppler-utils包的一部分。更多信息可以在spatie/pdf-to-text的readme中找到。通常,brew install poppler-utils就足够了。

最后,使用以下命令运行测试

composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

安全性

如果您发现了一个关于安全性的bug,请通过[email protected]发送邮件,而不是使用问题跟踪器。

替代方案

如果您无法安装Node和Puppeteer,请查看browsershot的v2版本,它使用Chrome无头CLI来截屏。版本v2不再维护,但应该表现相当不错。

如果使用无头Chrome对您不起作用,请查看本包的v1版本,它使用废弃的PhantomJS二进制文件。

致谢

特别感谢Caneco提供标志✨

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。