Javaを使用してPDFを画像に変換する
以下のチュートリアルでは、ホストされたJPedalクラウドAPIを使用してPDFを画像に変換する方法を説明します。独自のセルフホスト型JPedalマイクロサービス をセットアップすることもできます。
上記のサービスは通常のHTTPリクエストでアクセスできますが、このチュートリアルではオープンソースのJava IDRCloudClient を使用します。これはREST API のシンプルなJavaラッパーを提供します。
開始する前に、JDKの最新バージョン(バージョン8以上)がインストールされていることを確認する必要があります。詳細についてはJavaのウェブサイト を参照してください。
以下は、PDFを画像に変換するための基本的なコード例です。設定オプションと高度な機能については以下をご覧ください。
import java.util.Map;
public final class ExampleUsage {
public static void main(final String[] args) {
final IDRCloudClient client = new IDRCloudClient("https://my-self-hosted-service.com/" + IDRCloudClient.JPEDAL);
final HashMap<String, String> params = new HashMap<>();
params.put("input", IDRCloudClient.UPLOAD);
params.put("file", "path/to/file.pdf");
params.put("settings","{\"mode\":\"convertToImages\",\"format\":\"png\"}");
try {
final Map<String, String> results = client.convert(params);
System.out.println(" --------- ");
System.out.println(results.get("previewUrl"));
IDRCloudClient.downloadResults(results, "path/to/outputDir", "example");
} catch (final ClientException | InterruptedException e) {
e.printStackTrace();
}
}
}
JPedalマイクロサービスは、変換完了時に変換のステータス
を送信するためのコールバックURLを受け付けます。コールバックURLを使用することで、変換が完了したかどうかを判断するためにサービスをポーリングする必要がなくなります。
コールバックURLは以下のようにparamsマップに指定できます。
final HashMap<String, String> params = new HashMap<>();
params.put("input", IDRCloudClient.UPLOAD);
params.put("file", "path/to/file.pdf");
params.put("callbackUrl", "http://listener.url");
params.put("settings","{\"mode\":\"convertToImages\",\"format\":\"png\"}");
JPedal APIは、変換をカスタマイズするためのキーと値のペアの設定オプションを含む文字列化されたJSONオブジェクトを受け付けます。設定はパラメータ配列に追加する必要があります。PDFを画像に変換するための設定オプションの完全なリストはこちら で確認できます。
params.put("settings", "{\"key\":\"value\",\"key\":\"value\"}");
ローカルファイルをアップロードするだけでなく、JPedalマイクロサービスがダウンロードして変換を実行するURLを指定することもできます。これを行うには、parametersの変数のinputとfileの値を以下のように置き換えます。
params.put("input", IDRCloudClient.DOWNLOAD);
params.put("url", "http://exampleURL/exampleFile.pdf");
JPedalマイクロサービスが認証を必要とする場合は、ユーザー名とパスワードを提供する必要があります。これらは、以下のようにusernameとpasswordという名前の2つの変数をconvertメソッドに渡すことで提供されます。
params.put("username","yourUsername");
params.put("password","yourPassword");
