LoginSignup
15
17

More than 1 year has passed since last update.

PDFを操作するなら「Adobe Document Services API」が便利!

Last updated at Posted at 2022-02-02

はじめに

Adobe Document Servicesは、Acrobatなどのアプリケーションで提供されている、PDFを操作する機能を実装したクラウドサービスです。個々の機能を「PDF verb」と呼び、Adobe Document Services APIを用いてPDF verb単位でアプリケーションに組み込むことができます。

PDF_verbs.png

この記事では、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)。

AdobeIO_dcsdk_lp.png

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ボタンを押すと新しいクレデンシャルを作成できます。

AdobeIO_Get_Started.png

Adobe PDF Services API Free Trialの画面ですべての項目を入力します。developer terms(アドビデベロッパー利用条件)を確認し、同意したらCreate Credentialsボタンを押します。

AdobeIO_Get_Credentials.png

ここでは各項目はそれぞれ以下のように入力しました。

項目 入力値
Credentials Name dcsdk-jp-credentials
Create personalized code sample YES
Choose language Node.js

クレデンシャルが作成されると以下のような画面が表示されます。この情報は、Adobe Developer Consoleからも確認できます。

AdobeIO_Credentials_Created.png

クレデンシャルを作成するとSDK(PDFServicesSDK-Node.jsSamples.zip)もダウンロードされます。開発言語としてJavaScript(Node.js)を選択したため、SDKにはNode.js向けのサンプルコードが含まれています。

SDKのセットアップと実行

SDKがダウンロードできたら、Node.jsの環境をセットアップします。詳しい手順は、Adobe I/OのDocumentationのページをご覧ください。

NodeJS_Documentation.png

以下では、最小限の手順のみを示します。

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ファイル)です。問題なく変換されました!(当たり前か)

CreatePDF_result.png

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 APICreate credentialsボタンを押します。

AdobeIO_Get_Started_Embed.png

Credentials NameApplication Domainを入力します。クライアントIDはここで指定したApplication Domainに紐づき、他のドメインでは認証されませんのでご注意ください。

AdobeIO_Get_Embed_Credentials.png

クレデンシャルが作成されると以下のような画面が表示され、クライアントIDが確認できます。

AdobeIO_Embed_Credentials_Created.png

 PDF Embed APIの動作例

PDF Embed APIの動作はオンラインデモで確認できます。このページでは、表示するPDFを変更したり、動作をカスタマイズしたりするだけでなく、それを反映したコードの生成もできます。コードをコピーしてクライアントIDなどを設定すればすぐに使えるので、非常に便利です。

Embed_demo.png

まとめ

Adobe Document Services APIについて紹介しました。また、PDF Services APIのトライアル用のクレデンシャルを作成し、SDKをセットアップして、サンプルプログラムを実行するまでの手順を解説しました。PDF Embed APIを用いてWebアプリにPDFビューアを埋め込む方法についても解説しました。SDKに含まれるサンプルプログラムやPDF Embed APIのオンラインデモには活用方法のヒントがたくさん含まれていますので、是非いろいろお試しください!

15
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17