fbpx
< 戻る
印刷

Javaを使ってPDFからテキストを抽出する

目次

はじめに

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

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

前提条件

始める前に、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\":\"extractText\",\"type\":\"plainText\"}");
        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();
        }
    }
} 
				
			

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

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

				
					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\":\"extractText\",\"type\":\"plainText\"}"); 

				
			

設定オプション

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

				
					params.put("settings", "{\"key\":\"value\",\"key\":\"value\"}");

				
			

URLによるアップロード

ローカルファイルをアップロードするだけでなく、JPedalマイクロサービスがダウンロードして抽出を行うURLを指定することもできます。そのためには、inputとfileの値を以下のように置き換えてください。

				
					params.put("input", IDRCloudClient.DOWNLOAD);
params.put("url", "http://exampleURL/exampleFile.pdf");
				
			

認証の使用

PDFからテキストを抽出するためにユーザ名とパスワードを必要とする独自のJPedalマイクロサービスをデプロイする場合、変換のたびにユーザ名とパスワードを提供する必要があります。これらは、URLの前にユーザ名とパスワードを持つユーザフラグを追加することで提供されます。

				
					params.put("username","yourUsername");
params.put("password","yourPassword");
				
			
    MENU
    PAGE TOP