isset / alfredo
Alfredo for PHP 5.3
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-24 01:58:26 UTC
README
为了利用在线PDF转换器的API,您需要在项目中安装客户端并访问我们的系统。访问API需要两个密钥,一个
- 消费者密钥
- 私钥
没有这些,您将无法连接到我们的服务器。接下来是客户端。此安装过程将在下一章中解释。
安装
目前客户端库不公开可用。请联系我们以获取访问此库的权限。客户端库需要通过Composer安装。如果您从未使用过Composer,请点击此处。(https://composer.php.ac.cn/doc/00-intro.md)
将以下内容添加到您的composer.json文件中的"require"部分
"isset/alfredo": "1.*"
在添加了要求后,转到您选择的终端并运行命令:如果您已经在机器上安装了Composer
composer update
否则
php composer.phar update
在线PDF转换器的API现在将安装并添加到Composer的自加载器。
创建有效负载
PDF的转换是通过有效负载完成的,该有效负载发送到服务器。使用我们的API,可以从多个不同的来源创建PDF。目前可用的来源:HTML、PDF和URL。以下示例将向您展示如何完成
附加来源
附加HTML
$payload = new Alfredo\Payload\Pdf\Convert; $payload->addhtml('<html><thead></thead><tbody>test</tbody></html>');
附加PDF
$payload = new Alfredo\Payload\Pdf\Convert; $pdf = file_get_contents('path/to/pdf/file.pdf'); $payload->addPdf($pdf);
附加URL
$payload = new Alfredo\Payload\Pdf\Convert; $payload->addUrl('http://online-pdfconverter.nl');
- 注意:目前我们的URL转换不稳定。这是由于一些网页格式不正确。
设置回调URL
当使用队列时需要回调URL。此URL将调用转换的响应。它将包含两个项目,命名为
- 标识符
- 响应
使用标识符,可以在转换完成后下载。以下是如何设置回调的示例
$payload = new Alfredo\Payload\Pdf\Convert; $payload->setCallback('http://example.com/callback_url');
方法链式调用
所有上述方法都可以链接在一起
$payload = new Alfredo\Payload\Pdf\Convert; $payload->addhtml('<html><thead></thead><tbody>test</tbody></html>') ->addPdf(file_get_contents('path/to/pdf/file.pdf')) ->addUrl('http://online-pdfconverter.nl'); ->setCallback('http://example.com/callback-response');
更改转换器类型
我们的API能够根据每个有效负载切换转换器类型。可用的类型
- wkhtmltopdf
- htmltopdfjava(默认值)
这样就可以更改类型
$payload = new Alfredo\Payload\Pdf\Convert; $payload->setConverter('wkhtmltoppdf');
流式有效负载
有多种方法可以执行转换。流式传输是其中之一。在流式传输时,您将立即收到响应,但不能由服务器存储,只能由用户存储。为此转换,您将需要消费者密钥和私钥。以下是如何流式传输PDF的方法
$payload = new Alfredo\Payload\Pdf\Convert; $payload->addhtml('<html><thead></thead><tbody>test</tbody></html>'); $server = new Alfredo\Server('http://converter.isset.nl', 'consumer_key', 'private_key'); try { $response = $server->stream($payload); header('Content-type: application/pdf'); echo $response } catch (Alfredo\ConversionUnableException $e) { echo $e->getMessage(); }
队列有效负载
要队列PDF转换,您需要在有效负载上设置回调URL,这在上文几章中已解释。在添加一个或多个来源和回调URL后,我们将有效负载传递给API。
$payload = new Alfredo\Payload\Pdf\Convert; $payload->addhtml('<html><thead></thead><tbody>test</tbody></html>'); $payload->setCallback('http://example.com/callback_url'); $server = new Alfredo\Server('http://converter.isset.nl', 'consumer_key', 'private_key'); $response = $server->queue($payload);
服务器将返回一个包含标识符和响应状态的JSON字符串。将标识符保存到数据库中的某个地方可能会有所帮助。当PDF转换完成后,我们的服务器将向回调URL发送一个包含相同JSON字符串的POST请求。如果响应状态表明转换已完成,您将能够像这样请求PDF
$server = new Alfredo\Server('http://converter.isset.nl', 'consumer_key', 'private_key'); $payload = new Alfredo\Payload\Pdf\QueueItem; $payload->setIdentifier('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); $pdf = $server->getQueueItem($payload);
getQueueItem()方法的响应将是转换后的PDF。您可以像上述章节中解释的那样流式传输它。