chromeheadlessio / php-client
一个开源的PHP客户端,用于使用chromeheadless.io的云导出服务
Requires
- php: >=5.4
- dev-master
- 1.4.0
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.1
- 0.4.0
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- dev-ver1.4.0
- dev-ver1.3.1
- dev-ver1.3.0
- dev-ver1.2.0
- dev-ver1.1.0
- dev-ver1.0.0
- dev-ver0.7.0
- dev-ver0.6.0
- dev-ver0.4.1
- dev-ver0.4.0
- dev-ver0.3.3
- dev-ver0.3.2
- dev-ver0.3.1
- dev-ver0.3.0
- dev-useResourcePatterns
This package is auto-updated.
Last update: 2024-09-16 09:50:08 UTC
README
专注于您的应用程序,通过将繁重的PDF生成任务卸载给我们来节省您的时间和服务器的资源。ChromeHeadless.io将为您的专业客户的发票、数据报告等提供美观且无错误的PDF。
它是如何工作的?
我们的服务通过REST API提供,因此理论上可以与任何语言和系统一起使用。为了方便,我们正在为每种语言(如PHP、NodeJs、.Net和Python)构建客户端库。如果您使用这些语言,您可以安装客户端库,并使用从您的注册账户创建的秘密令牌提供它。客户端库将压缩您的HTML以及CSS和JavaScript等资源,并将其发送到我们的服务器农场以生成PDF版本。高分辨率的PDF将发送回您。
优势
使用我们的系统有许多优势
- 无需安装:您无需安装PhantomJS或无头Chrome。
- 卸载繁重任务:无头Chrome或PhantomJS需要一定数量的CPU和RAM,您可以将这些资源保留用于其他关键任务。此外,您的CPU和RAM可能没有针对此任务进行优化,这可能会影响效率。我们的系统包含一个高度优化的服务器农场,因此我们可以更快、更好地执行这些任务。
- 避免复杂的界面:您可以避免不必要的复杂编码来控制无头浏览器。
- 一切正常工作:我们将确保您的PDF生成得很好,所有字体都正常工作,这样您就可以花更多的时间专注于您的应用程序,而不是被无头Chrome的问题所困扰。
我们相较于其他类似PDF云服务的优势
在决定推出我们的服务之前,我们已经很好地研究了其他服务,以下是我们的一些优势
- 其中一些无法执行JavaScript,只能将纯HTML转换为PDF,但我们做到了!
- 其中许多需要您的应用程序在线,以便资源可以加载。如果您的应用程序位于本地主机或内网,他们的解决方案将不起作用,但我们做到了!
获取令牌密钥
令牌密钥是一个64字符的强字符串,用于访问我们的服务。您需要将令牌附加到您对服务的每个请求中。
生成令牌密钥的步骤
- 如果您已经拥有我们的账户,请进入第2步,否则注册。注册后几分钟,您将收到一封标题为“欢迎来到ChromeHeadless.io”的电子邮件。
- 使用欢迎邮件中的账户凭证登录我们的系统。
- 转到令牌管理页面
- 点击
生成
按钮以生成令牌密钥。
安装
可以通过composer安装PHP客户端
composer require chromeheadlessio/php-client
示例
<?php //Use PHP Client Library require_once "vendor/autoload.php"; //Create ChromeHeadless service with your token key specified $service = new \chromeheadlessio\Service("my-token-key"); //Get PDF generated from html content and push it to browser $service->export([ "html"=>"Hello world!" ])->pdf([ "format"=>"A4", "orientation"=>"portrait" ])->sendToBrowser("helloworld.pdf");
导出内容
《export()` 方法属于服务类。它接收一个数组作为参数,定义了需要导出的内容。以下是一系列属性:
导出到PDF
《pdf()` 方法可以帮助生成PDF文件。它接收一个数组作为参数,定义了PDF的选项。以下是可用的选项:
示例
$service->export(...)->pdf([
"scale"=>1,
"format"=>"A4",
"landscape"=>true
])->sendToBrowser("myfile.pdf");
视图文件中的PDF选项
某些选项可以直接在PDF视图文件中设置,而不是通过pdf()方法。
页眉和页脚
在视图文件中,使用页眉和页脚标签来设置PDF的页眉和页脚模板。
示例
<header>
<div id="header-template"
style="font-size:10px !important; color:#808080; padding-left:10px">
<span>Header: </span>
{date}
{title}
{url}
{pageNumber}
{totalPages}
<span id='pageNum' class="pageNumber"></span>
<img src='http://www.chromium.org/_/rsrc/1438879449147/config/customLogo.gif?revision=3' />
</div>
</header>
<footer>
...
</footer>
如果存在页眉或页脚标签,则PDF选项的displayHeaderFooter属性将为true。PDF选项的headerTemplate和footerTemplate选项优先于视图文件的页眉和页脚标签。使用页眉和页脚标签时,如果没有字体大小样式,将使用默认样式 "font-size:10x"。页眉和页脚标签支持占位符如 {date}、{title} 等,以及带有链接类型src的img标签。对于img标签,PDF选项的headerTemplate和footerTemplate只支持base64类型的src。
页边距
在视图文件中,使用body标签的margin样式来设置PDF的页边距。
示例
//MyReportPDF.view.php
<body style='margin: 1in 0.5in 1in 0.5in'>
...
</body>
如果存在页眉或页脚标签,但没有body的页边距,则将使用默认页边距1英寸。
导出到PNG
《png()` 方法可以帮助生成PNG文件。它接收一个数组作为参数,定义了PNG的选项。以下是属性列表:
示例
$service->export(...)->png([
"clip"=>[
"x"=>100,
"y"=>100,
"width"=>500,
"height"=>1000,
]
])->sendToBrowser("myfile.png");
导出到JPG
《png()` 方法可以帮助生成JPG文件。它接收一个数组作为参数,定义了JPG的选项。以下是属性列表:
示例
$service->export(...)->jpg([
"quality"=>80
"clip"=>[
"x"=>100,
"y"=>100,
"width"=>500,
"height"=>1000,
]
])->sendToBrowser("myfile.jpg");
获取结果
在上述所有示例中,我们使用方法 sendToBrowser()
将文件发送到浏览器,用户可以在浏览器中打开或作为附件下载。以下是所有选项:
示例
$service->export(...)->jpg([
"quality"=>80
"clip"=>[
"x"=>100,
"y"=>100,
"width"=>500,
"height"=>1000,
]
])->save("../img/myfile.jpg");
关于我们
酷PHP公司 已经从事业务10年,我们专注于构建功能丰富且易于使用的组件,以帮助开发者提高生产力,在时间和预算限制内交付最高质量的应用程序。我们的主要产品是KoolPHP UI和KoolReport。KoolPHP UI 是开发者构建网页的工具集,而KoolReport 是一个开源的报表框架,用于更轻松地构建数据报表和仪表板。