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

Rubyを使用してPDFから画像を抽出する

目次

  1. はじめに
  2. 前提条件
  3. コード例
  4. 結果をコールバックURLに返す
  5. 設定オプション
  6. URLによるアップロード
  7. 認証の使用
  8. 詳細情報

はじめに

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

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

前提条件

プロジェクトでIDRCloudClientを使用するには2つのアプローチがあります。

gemを使用して、次のコマンドでidr_cloud_client gem をインストールします。

gem install idr_cloud_client

または、アプリケーションのgemfileに"gem ‘idr_cloud_client’“という行を追加してから、次のコマンドを実行することもできます。

bundle install

コード例

以下は、PDFから画像を抽出する基本的なコード例です。設定オプションや高度な機能については下記をご覧ください。

require 'idr_cloud_client'

client = IDRCloudClient.new('https://my-self-hosted-service.com/' + IDRCloudClient::JPEDAL)

result = client.convert(
    input: IDRCloudClient::UPLOAD, 
    file: 'path/to/exampleFile.pdf',
    , 
    settings: '{"mode":"extractImages","type":"rawImages","format":"png"}')

client.download_result(result, 'path/to/output/dir')

puts 'Download URL: ' + result['downloadUrl']

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

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

result = client.convert(
    input: IDRCloudClient::UPLOAD,
    callbackUrl: 'http://listener.url',
    file: 'path/to/exampleFile.pdf',
    , 
    settings: '{"mode":"extractImages","type":"rawImages","format":"png"}')

設定オプション

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

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

URLによるアップロード

ローカルファイルをアップロードするだけでなく、JPedalマイクロサービスがダウンロードして抽出を実行するURLを提供することもできます。これを行うには、convertメソッドのinputとfileの値を以下のように置き換える必要があります。

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

認証の使用

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

auth:('username', 'password'))

詳細情報

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