Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

NodeJSを使用してPDFからテキストを抽出する

目次

  1. はじめに
  2. NodeJSを使用してPDFからテキストを抽出する方法
  3. コールバックURLに結果を返す
  4. 完全なコード例
  5. 設定オプション
  6. URLでアップロードする
  7. 認証を使用する
  8. 詳細情報

はじめに

以下のチュートリアルでは、ホストされたJPedalクラウドAPIを使用してPDFからテキストを抽出する方法を説明します。独自の自己ホスト型JPedalマイクロサービス をセットアップすることもできます。

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

NodeJSを使用してPDFからテキストを抽出する方法

  1. npmを使用して、以下のコマンドでidrcloudclientパッケージ をインストールします:
npm install --save @idrsolutions/idrcloudclient  
  1. idrcloudclientオブジェクトを作成します
var idrcloudclient = require('@idrsolutions/idrcloudclient');
  1. エンドポイント変数を作成します
var endpoint = 'https://my-self-hosted-service.com/' + idrcloudclient.JPEDAL;
  1. ファイルをアップロードするためのパラメータマップを作成します
var parameters =  {
    input: idrcloudclient.UPLOAD,
    file: 'path/to/exampleFile.pdf',
    settings: '{"mode":"extractText","type":"plainText"}'
}
  1. [オプション] 進行状況、成功、失敗時にトリガーされるリスナーを作成します。
function progressListener(e) {
    console.log(JSON.stringify(e));
}
function failureListener(e) {
    console.log(e);
    console.log('Failed!');
}
function successListener(e) {
    console.log(JSON.stringify(e));
    console.log('Download URL: ' + e.downloadUrl);
}
  1. 前述で作成した変数を使用してconvertメソッドを呼び出します
idrcloudclient.convert({
    endpoint: endpoint,
    parameters: parameters,

    // 以下はオプションのリスナーです。定義していないものは無視してください
    progress: progressListener,
    success: successListener,
    failure: failureListener
});

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

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

var parameters =  {
    input: idrcloudclient.UPLOAD,
    callbackUrl: 'http://listener.url',
    file: 'path/to/exampleFile.pdf',
    settings: '{"mode":"extractText","type":"plainText"}'
}

完全なコード例

上記のセクションの手順に基づいて、PDFからテキストを抽出するための完全なコード例を以下に示します。設定オプションと高度な機能については、次のセクションで説明します。

var idrcloudclient = require('@idrsolutions/idrcloudclient');

function progressListener(e) {
    console.log(JSON.stringify(e));
}

function failureListener(e) {
    console.log(e);
    console.log('Failed!');
}

function successListener(e) {
    console.log(JSON.stringify(e));
    console.log('Download URL: ' + e.downloadUrl);
}

var endpoint = 'https://my-self-hosted-service.com/' + idrcloudclient.JPEDAL;
var parameters =  { 
    input: idrcloudclient.UPLOAD,
    file: 'path/to/exampleFile.pdf',
    settings: '{"mode":"extractText","type":"plainText"}'
 }

idrcloudclient.convert({
    endpoint: endpoint,
    parameters: parameters,
    
    // 以下は利用可能なリスナーです
    progress: progressListener,
    success: successListener,
    failure: failureListener
});

設定オプション

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

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

URLでアップロードする

ローカルファイルをアップロードする代わりに、JPedalマイクロサービスがダウンロードして抽出を実行するURLを指定することもできます。これを行うには、parameters変数のinputとfileの値を以下のように置き換える必要があります。

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

認証を使用する

PDFからテキストを抽出するためにユーザー名とパスワードを必要とする独自のJPedalマイクロサービスをデプロイした場合、各変換時にそれらを提供する必要があります。これらは、以下に示すようにconvertメソッドにusernameとpasswordという2つの変数を渡すことで提供されます。

username: 'username',
password: 'password',

詳細情報

GitHubのIDRCloudClient
NPMのIDRCloudClient
JPedalマイクロサービスAPI
JPedalマイクロサービスの使用方法