使用Spatie Browsershot生成PDF的完整指南

使用Spatie Browsershot生成PDF的完整指南

browsershot Convert HTML to an image, PDF or string browsershot 项目地址: https://gitcode.com/gh_mirrors/br/browsershot

Spatie Browsershot是一个强大的PHP库,它允许开发者使用PHP代码生成PDF文件。本文将全面介绍如何使用Browsershot创建PDF文件,并探讨各种自定义选项。

基础PDF生成

Browsershot提供了两种简单的方式来生成PDF文件:

  1. 通过URL生成PDF:
Browsershot::url('https://example.com')->save('example.pdf');
  1. 通过HTML内容生成PDF:
Browsershot::html($someHtml)->savePdf('example.pdf');

当文件扩展名为.pdf时,Browsershot会自动识别并生成PDF格式文件。你也可以显式使用savePdf方法来确保生成PDF。

获取Base64编码的PDF

在某些无服务器环境或需要直接处理PDF内容而不保存到磁盘的场景下,可以获取PDF的Base64编码:

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

这种方式特别适合需要将PDF直接上传到云存储或通过API传输的场景。

安全注意事项

在使用Browsershot时,开发者必须自行验证所有传入的URL和HTML内容的安全性。只处理可信的来源,避免XSS等安全风险。

PDF尺寸与格式设置

自定义尺寸

你可以精确控制PDF的尺寸:

Browsershot::html($someHtml)
   ->paperSize($width, $height, 'mm')  // 支持多种单位(mm, cm, in, px)
   ->save('example.pdf');

预设格式

Browsershot支持多种标准纸张格式:

Browsershot::url('https://example.com')
   ->format('A4')  // 支持A0-A6, Letter, Legal等
   ->save('example.pdf');

页边距设置

精确控制PDF的页边距:

Browsershot::html($someHtml)
   ->margins($top, $right, $bottom, $left, 'mm')  // 可指定单位
   ->save('example.pdf');

页眉页脚设置

Browsershot允许自定义页眉页脚内容:

Browsershot::html($someHtml)
   ->showBrowserHeaderAndFooter()
   ->headerHtml('<div>自定义页眉</div>')
   ->footerHtml('<div class="pageNumber"></div>')
   ->save('example.pdf');

支持的特殊类名:

  • date - 格式化日期
  • title - 文档标题
  • url - 文档URL
  • pageNumber - 当前页码
  • totalPages - 总页数

背景控制

默认情况下,PDF不会包含HTML页面的背景。可以通过以下方法修改:

// 显示背景
Browsershot::html($someHtml)
   ->showBackground()
   ->save('example.pdf');

// 透明背景
Browsershot::html($someHtml)
   ->transparentBackground()
   ->save('example.pdf');

高级功能

可访问PDF

生成带有标签的可访问PDF:

Browsershot::html($someHtml)
    ->taggedPdf()
    ->save('example.pdf');

横向布局

将PDF设置为横向:

Browsershot::html($someHtml)
   ->landscape()
   ->save('example.pdf');

缩放控制

调整PDF的缩放比例(0.1到2之间):

Browsershot::html($someHtml)
    ->scale(0.5)  // 缩小50%
    ->save('example.pdf');

选择特定页面

只导出指定页面:

Browsershot::html($someHtml)
   ->pages('1-5, 8, 11-13')  // 支持多种范围格式
   ->save('example.pdf');

设置起始页码

自定义起始页码:

Browsershot::html($someHtml)
   ->initialPageNumber(8)  // 第一页编号为8
   ->save('example.pdf');

直接输出到浏览器

不保存文件,直接输出PDF到浏览器:

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

通过掌握这些功能,你可以灵活地使用Spatie Browsershot生成满足各种需求的PDF文档。无论是简单的网页转换还是复杂的定制PDF,Browsershot都能提供强大的支持。

browsershot Convert HTML to an image, PDF or string browsershot 项目地址: https://gitcode.com/gh_mirrors/br/browsershot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

花化贵Ferdinand

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

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

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

打赏作者

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

抵扣说明:

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

余额充值