PythonでPDFから画像を抽出する
以下のチュートリアルでは、ホストされたJPedalクラウドAPIを使用してPDFから画像を抽出する方法を説明します。セルフホスト型JPedalマイクロサービス を独自にセットアップすることもできます。
上記のサービスは通常のHTTPリクエストでアクセスできますが、このチュートリアルではREST API をラップしたシンプルなPythonラッパーを提供する、オープンソースのPython IDRCloudClient を使用します。
pipを使用して、以下のコマンドでIDRCloudClientパッケージ をインストールします。
pip install IDRCloudClient
以下は、PDFから画像を抽出するための基本的なコード例です。設定オプションと高度な機能については、以下をご覧ください。
from IDRSolutions import IDRCloudClient
client = IDRCloudClient('https://my-self-hosted-service.com/' + IDRCloudClient.JPEDAL)
try:
result = client.convert(
input=IDRCloudClient.UPLOAD,
file='/path/to/exampleFile.pdf',
,
settings='{"mode":"extractImages","type":"rawImages","format":"png"}'
)
outputURL = result['downloadUrl']
client.downloadResult(result, 'path/to/output/dir')
if outputURL is not None:
print("Download URL: " + outputURL)
except Exception as error:
print(error)
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"}'
ローカルファイルをアップロードするだけでなく、JPedalマイクロサービスがダウンロードして抽出を実行するURLを提供することもできます。これを行うには、convertメソッドのinputとfileの値を以下に置き換えます。
input=IDRCloudClient.DOWNLOAD
url='http://exampleURL/exampleFile.pdf'
PDFから画像を抽出するためにユーザー名とパスワードを必要とする独自のJPedalマイクロサービスをデプロイしている場合、各変換でそれらを提供する必要があります。これらは、以下に示すようにauthという名前の変数をconvertメソッドに渡すことで提供されます。
auth=('username', 'password'))
GitHubのIDRCloudClient
PypiのIDRCloudClient
JPedalマイクロサービスAPI
JPedalマイクロサービスの使用
