※この記事のアップデート版を以下で公開しています。最新情報はそちらをご覧ください!
はじめに
Adobe Document Servicesは、Acrobatなどのアプリケーションで提供されている、PDFを操作する機能を実装したクラウドサービスです。個々の機能を「PDF verb」と呼び、Adobe Document Services APIを用いてPDF verb単位でアプリケーションに組み込むことができます。
この記事では、Adobe Document Services APIの概要と、実際にAPIを呼び出してPDFを操作したり表示したりするための手順について紹介します。
Adobe Document Services APIとは
Adobe Document Services APIは、次の4つのAPIで構成されています。
PDF Services API
PDF Services APIを使えば、ドキュメントをプログラムから操作したり、さまざまなドキュメントワークフローを自動化したりできます。Officeファイル等をPDFに変換する、PDFをパスワードで保護する、圧縮や最適化(リニアライズ)する、ページの挿入や並べ替えなどをする、OCRを実行する、といった操作が可能です。
Document Generation API
Document Generation APIは、JSON形式のデータとWordテンプレートをマージして高品質なPDFやWordドキュメントを生成します。これにより、契約書、インボイス、レポートなどの定型的なドキュメントを効率良く作成できます。ライセンス上は、Document Generation APIは、PDF Services APIの一部として提供されます。
PDF Extract API
PDF Extract APIは、アドビのAIテクノロジーであるAdobe Senseiを利用してPDFを解析します。テキスト、図、表を認識し、読み順や書式の情報とともに構造化されたJSONデータを出力します。スキャンされたPDFも解析できます。ライセンス上は、PDF Extract APIは、PDF Services APIの一部として提供されます。
PDF Embed API
PDF Embed APIを使えば、WebアプリにPDFの閲覧機能を簡単に追加できます。コメントや描画などをサポートするコラボレーション機能や、PDFイベントのトラッキングが可能なアナリティクス機能も提供しており、Webアプリのユーザ体験を拡張するのに役立ちます。
YouTubeにAdobe Document Services APIの紹介動画がアップされていますので、こちらもご覧ください。
Adobe I/Oは情報源
Adobe Document Services APIに関するリソースは、アドビのデベロッパ向けサイトAdobe I/Oに集約されています(Adobe I/Oのトップページからは Products > Adobe PDF Services API または Adobe PDF Embed API)。
Adobe I/Oでは、次のことができます。
- APIリファレンスを含む各種ドキュメントの参照
- クレデンシャルの作成や管理
- SDKのダウンロード(PDF Services APIのみ)
PDF Services APIのクレデンシャルは最長6ヶ月間、1,000回のAPIコールに使用できます。PDF Embed APIは無償であり、期限やAPIコール回数に制限はありません。
Adobe I/Oを利用するにはAdobe ID
が必要です。まだ持っていない場合は、こちらのヘルプページを参考にAdobe IDを作成してください。
PDF Services APIをSDKから呼び出してPDFを操作する
PDF Services APIはSDKから呼び出すこともできます。Adobe I/Oでトライアル用にクレデンシャルを作成し、SDKをダウンロードして実行してみましょう(Document Generation APIやPDF Extract APIも使えるようになります)。ここでは、Node.js(JavaScript)用のSDKを使います。他にもJava用や.NET用のSDKが提供されています。
クレデンシャルの作成とSDKのダウンロード
Adobe I/Oのページ右上のGet credentials
ボタンをクリックするとクレデンシャルの作成ができます。PDF SERVICES APIのCreate credentials
ボタンを押すと新しいクレデンシャルを作成できます。
Adobe PDF Services API Free Trial
の画面ですべての項目を入力します。developer terms
(アドビデベロッパー利用条件)を確認し、同意したらCreate Credentials
ボタンを押します。
ここでは各項目はそれぞれ以下のように入力しました。
項目 | 入力値 |
---|---|
Credentials Name | dcsdk-jp-credentials |
Create personalized code sample | YES |
Choose language | Node.js |
クレデンシャルが作成されると以下のような画面が表示されます。この情報は、Adobe Developer Consoleからも確認できます。
クレデンシャルを作成するとSDK(PDFServicesSDK-Node.jsSamples.zip)もダウンロードされます。開発言語としてJavaScript(Node.js)を選択したため、SDKにはNode.js向けのサンプルコードが含まれています。
SDKのセットアップと実行
SDKがダウンロードできたら、Node.jsの環境をセットアップします。詳しい手順は、Adobe I/OのDocumentationのページをご覧ください。
以下では、最小限の手順のみを示します。
1. Node.jsのインストール
この記事の執筆時点では、Node.js 10.13.0 以降がサポートされています。まだインストールされていない場合は、Node.jsのサイトからダウンロードしてインストールしてください。
2. SDKのインストール
ダウンロードしたSDKを適当な場所で解凍してください。SDKのフォルダ階層は以下のようになっています。クレデンシャル作成時にCreate personalized code sample
をチェックしているため、作成されたクレデンシャルの情報(pdfservices-api-credentials.json
)もSDKに含まれています。
PDFServicesSDK-Node.js.Samples
│ README.txt
│ private.key
└─ adobe-dc-pdf-services-sdk-node-samples
│ CODE_OF_CONDUCT.md
│ LICENSE.md
│ package.json
│ pdfservices-api-credentials.json
│ private.key
│ README.md
├─ config
│ pdfservices-sdk-log4js-config.json
├─ resources
│ baseInput.pdf
│ combineFileWithPageRangeInput1.pdf
│ (...)
└─ src
├─ combinepdf
│ combine-pdf-with-page-ranges.js
│ combine-pdf.js
├─ compresspdf
│ (...)
└─ splitpdf
(...)
3. SDKのセットアップ
ターミナル(Macの場合、Windowsではコマンドプロンプト)を開いて以下を実行します。SDKのサンプルフォルダ(adobe-dc-pdf-services-sdk-node-samples
)に移動して、npm install
を実行します。
% cd PDFServicesSDK-Node.js.Samples/adobe-dc-pdf-services-sdk-node-samples
% npm install --save @adobe/pdfservices-node-sdk
SDKをセットアップした直後は、処理結果が保存されるoutput
フォルダがありませんので、ここで作成しておきましょう。
% mkdir -p output
これでSDKの準備ができました。
4. PDF Services APIでWordファイルをPDFに変換してみる
では早速、SDKを試してみましょう。OfficeファイルをPDFに変換する機会は多いですよね。動作確認を兼ねてサンプルのWordファイルをPDFファイルに変換してみましょう。このサンプルプログラムは、Wordファイルresources/createPDFInput.docx
をPDFに変換してoutput/createPDFFromDOCX.pdf
に保存します。
% node src/createpdf/create-pdf-from-docx.js
左が変換前(Wordファイル)、右が変換後(PDFファイル)です。問題なく変換されました!(当たり前か)
src
フォルダ配下には他にも様々なサンプルプログラムがあります。例えば、上のように作成したPDFを圧縮して、パスワード保護するといった処理も簡単に行えます。
PDF Embed APIでWebアプリにPDFビューアを埋め込む
PDF Embed APIの呼び出し方
PDF Embed APIはJavaScriptのAPIであり、HTMLに以下のようなごく短いコードを埋め込むだけで使用できます。豊富なオプションによって、埋め込みモードの指定、UIのカスタマイズ、アノテーションツールの使用、Adobe Analyticsやイベントハンドラを利用したアナリティクスが可能です。PDFを表示するシンプルなプラグインと比べて、リッチなPDF体験をユーザに提供できるようになります。詳しくは、Adobe I/OのDocumentationのページをご覧ください。
<div id="adobe-dc-view"></div>
<script src="https://documentcloud.adobe.com/view-sdk/main.js"></script>
<script type="text/javascript">
document.addEventListener("adobe_dc_view_sdk.ready", function()
{
var adobeDCView = new AdobeDC.View({clientId: "<YOUR_CLIENT_ID>", divId: "adobe-dc-view"});
adobeDCView.previewFile(
{
content: {location: {url: "<DOCUMENT_URL>"}},
metaData: {fileName: "<FILE_NAME>"}
});
});
</script>
PDF Embed APIのクレデンシャルを作成する
前述したコード中の<YOUR_CLIENT_ID>
に指定するクライアントID(APIキー)は、PDF Embed APIのクレデンシャルを作成することで取得できます。PDF Embed APIのクレデンシャルはPDF Services APIのものとは異なりますが、同様の手順で作成することができます。Adobe I/Oのページの右上にあるGet credentials
ボタンを押して、PDF EMBED API
のCreate credentials
ボタンを押します。
Credentials Name
とApplication Domain
を入力します。クライアントIDはここで指定したApplication Domain
に紐づき、他のドメインでは認証されませんのでご注意ください。
クレデンシャルが作成されると以下のような画面が表示され、クライアントIDが確認できます。
### PDF Embed APIの動作例
PDF Embed APIの動作はオンラインデモで確認できます。このページでは、表示するPDFを変更したり、動作をカスタマイズしたりするだけでなく、それを反映したコードの生成もできます。コードをコピーしてクライアントIDなどを設定すればすぐに使えるので、非常に便利です。
まとめ
Adobe Document Services APIについて紹介しました。また、PDF Services APIのトライアル用のクレデンシャルを作成し、SDKをセットアップして、サンプルプログラムを実行するまでの手順を解説しました。PDF Embed APIを用いてWebアプリにPDFビューアを埋め込む方法についても解説しました。SDKに含まれるサンプルプログラムやPDF Embed APIのオンラインデモには活用方法のヒントがたくさん含まれていますので、是非いろいろお試しください!