< 戻る
印刷

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.<a href="https://www.intwk.co.jp/jpedal/" title="PDFドキュメントを扱う必要のあるJava開発者のためのPDFライブラリです。このライブラリは、PDFファイルを扱う際の一般的な問題を解決します。" hreflang="ja" onover-preload="1">JPEDAL</a>);

        
        final HashMap<string string> params = new HashMap();
        params.put("input", IDRCloudClient.UPLOAD);
        params.put("file", "<a href="https://pub.dev/packages/path" target="_blank" title="A string-based path manipulation library. All of the path operations you know and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web." hreflang="en-us">path</a>/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();
        }
    }
} </string></string>
				
			

結果をコールバック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", "<a href="https://pub.dev/packages/http" target="_blank" title="A composable, multi-platform, Future-based API for HTTP requests." hreflang="en-us">http</a>://listener.url");
params.put("settings","{\"mode\":\"extractText\",\"type\":\"plainText\"}"); 
</string>
				
			

設定オプション

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