isset/alfredo

此包的最新版本(1.1.2)没有可用的许可信息。

Alfredo for PHP 5.3

1.1.2 2013-10-07 08:41 UTC

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。您可以像上述章节中解释的那样流式传输它。