PHPを使用してPDFから画像を抽出する
次のチュートリアルでは、ホストされたJPedalクラウドAPIを使用してPDFから画像を抽出する方法を示します。独自のセルフホスト型JPedalマイクロサービス をセットアップすることもできます。
上記のサービスは通常のHTTPリクエストでアクセスできますが、このチュートリアルではオープンソースのPHP IDRCloudClient を使用します。これはREST API の周りにシンプルなPHPラッパーを提供します。
composerを使用して、次のコマンドでidrsolutions-php-clientパッケージ をインストールします:
composer require idrsolutions/idrsolutions-php-client
以下は、PDFから画像を抽出するための基本的なコード例です。設定オプションと高度な機能については、以下をご覧ください。
<?php
require_once __DIR__ . "/PATH/TO/vendor/autoload.php";
use IDRsolutions\IDRCloudClient;
$endpoint = "https://my-self-hosted-service.com/" . IDRCloudClient::INPUT_JPEDAL;
$parameters = array(
'input' => IDRCloudClient::INPUT_UPLOAD,
'file' => __DIR__ . 'path/to/file.pdf',
'settings' => '{"mode":"extractImages","type":"rawImages","format":"png"}'
);
$results = IDRCloudClient::convert(array(
'endpoint' => $endpoint,
'parameters' => $parameters
));
IDRCloudClient::downloadOutput($results, __DIR__ . '/');
echo $results['downloadUrl'];
JPedalマイクロサービスは、抽出完了時のステータス
を送信するためのコールバックURLを受け付けます。コールバックURLを使用すると、抽出が完了したかどうかを判断するためにサービスをポーリングする必要がなくなります。
コールバックURLは、以下のようにparameters配列に指定できます。
$parameters = array(
'input' => IDRCloudClient::INPUT_UPLOAD,
'callbackUrl' => 'http://listener.url',
'file' => __DIR__ . 'path/to/file.pdf',
'settings' => '{"mode":"extractImages","type":"rawImages","format":"png"}'
);
JPedal APIは、抽出をカスタマイズするためのキーと値のペアの設定オプションを含む文字列化されたJSONオブジェクトを受け付けます。設定はparameters配列に追加する必要があります。PDFから画像を抽出するための設定オプションの完全なリストはこちら にあります。
'settings' => '{"key":"value","key":"value"}'
ローカルファイルをアップロードするだけでなく、JPedalマイクロサービスがダウンロードして抽出を実行するURLを指定することもできます。これを行うには、parameters配列のinputとfileの値を以下のように置き換えます。
'input' => IDRCloudClient.DOWNLOAD
'url' => 'http://exampleURL/exampleFile.pdf'
PDFから画像を抽出するためにユーザー名とパスワードを必要とする独自のJPedalマイクロサービスをデプロイした場合、各変換時にそれらを提供する必要があります。これらは、以下のようにparameters配列にusernameとpasswordという名前の2つの変数を追加することで提供されます。
'username' => 'Username_If_Required',
'password' => 'Password_If_Required',
この場合、downloadOutputメソッドにも認証値を提供する必要があります。
IDRCloudClient::downloadOutput($results, __DIR__ . '/','newFileName','username','password');
GitHubのIDRCloudClient
PackagistのIDRCloudClient
JPedalマイクロサービスAPI
JPedalマイクロサービスの使用方法
