fbpx
< 戻る
印刷

PHPを使ってPDFを画像に変換

目次

はじめに

以下のチュートリアルでは、ホスティングされたJPedalクラウドAPIを使ってPDFから画像に変換する方法を紹介します。セルフホスト型のJPedalマイクロサービスをセットアップすることもできます。

上記のサービスはHTTPリクエストでアクセスできますが、このチュートリアルでは、オープンソースのPHP IDRCloudClientを使用し、REST APIの簡単なPHPラッパーを提供します。

前提条件

Nugetを使用して、以下のコマンドでidrsolutions-php-client packageパッケージをインストールします:

				
					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":"convertToImages","format":"png"}'
);

$results = IDRCloudClient::convert(array(
    'endpoint' => $endpoint,
    'parameters' => $parameters
));

IDRCloudClient::downloadOutput($results, __DIR__ . '/');

echo $results['downloadUrl'];
				
			

結果をコールバックURLに返信

JPedal マイクロサービスは、抽出の完了時にステータスを送信するコールバック URL を受け付けます。コールバックURLを使用すると、抽出がいつ完了したかを判断するためにサービスをポーリングする必要がなくなります。
コールバックURLは以下のように指定します。

				
					$parameters = array(
    'input' => IDRCloudClient::INPUT_UPLOAD,
    'callbackUrl' => 'http://listener.url',
    'file' => __DIR__ . 'path/to/file.pdf',
    'settings' => '{"mode":"convertToImages","format":"png"}'
);
				
			

設定オプション

JPedal APIは、抽出をカスタマイズするためのキーと値のペアの設定オプションを含む文字列化されたJSONオブジェクトを受け付けます。設定はパラメータ配列に追加します。PDFを画像に変換するための設定オプションの完全なリストはこちらからご覧いただけます。

				
					'settings' => '{"key":"value","key":"value"}'
				
			

URLによるアップロード

ローカルファイルをアップロードするだけでなく、JPedal Microserviceがダウンロードして変換を実行するURLを提供することもできます。そのためには、parameters変数のinputとfileの値を以下のように置き換えてください。

				
					'input' => IDRCloudClient.DOWNLOAD
'url' => 'http://exampleURL/exampleFile.pdf'
				
			

認証の使用

PDFを画像に変換するためにユーザ名とパスワードを必要とする独自のJPedalマイクロサービスをデプロイする場合、変換のたびにユーザ名とパスワードを提供する必要があります。これらは、以下のようにパラメータ配列にusernameとpasswordという2つの変数を追加することで提供されます。

				
					'username' => 'Username_If_Required',
'password' => 'Password_If_Required',
				
			

この場合、downloadOutput メソッドにも認証値を指定する必要があります。

				
					IDRCloudClient::downloadOutput($results, __DIR__ . '/','newFileName','username','password');
				
			
    MENU
    PAGE TOP