该软件包可以将网页转换为图像或 pdf。该转换是由 Puppeteer 在幕后完成的,Puppeteer 控制着 Google Chrome 的无头版本。
这是一个简单的例子:
use SpatieBrowsershotBrowsershot;// 将保存图像Browsershot::url('https://example.com')->save($pathToImage);
如果传递给save
方法的路径具有pdf
扩展名,它将保存 pdf。
// 将保存 pdfBrowsershot::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(); // 返回正文的 html
如果您希望检索包含页面触发的所有请求的数组列表,您可以这样做:
$requests = Browsershot::url('https://example.com') ->triggeredRequests();foreach ($requests as $request) {$url = $request['url']; //https://example.com/}
要使用 Chrome 的新 headless 模式,请传递newHeadless
方法:
Browsershot::url('https://example.com')->newHeadless()->save($pathToImage);
通过观看我们的高级视频课程,了解如何创建这样的包:
我们投入了大量资源来创建一流的开源包。您可以通过购买我们的一款付费产品来支持我们。
我们非常感谢您从家乡寄给我们一张明信片,并注明您正在使用我们的哪种套餐。您可以在我们的联系页面上找到我们的地址。我们在虚拟明信片墙上发布所有收到的明信片。
所有文档均可在我们的文档网站上找到。
为了运行测试套件,您需要安装 Puppeteer。请参阅此处的 Browsershot 要求。通常npm -gi puppeteer
就可以解决问题。
此外,您还需要pdftotext
CLI,它是 poppler-utils 包的一部分。更多信息可以在 spatie/pdf-to-text 自述文件中找到。通常, brew install poppler-utils
就足够了。
最后运行测试:
作曲家测试
详细信息请参阅贡献。
如果您发现有关安全的错误,请发送邮件至 [email protected],而不是使用问题跟踪器。
如果您无法安装 Node 和 Puppeteer,请查看 browsershot v2,它使用 Chrome headless CLI 来截取屏幕截图。 v2
不再维护,但应该运行得很好。
如果使用无头 Chrome 不起作用,请查看此软件包的v1
,它使用废弃的PhantomJS
二进制文件。
弗里克·范德赫滕
所有贡献者
特别感谢 Caneco 的徽标
麻省理工学院许可证 (MIT)。请参阅许可证文件以获取更多信息。