レポートの作成と編集
財務、教育、マーケティングなどの業界では、PDFを使用して顧客や関係者とデータを共有しています。 PDFを使用すると、誰でも表示できる形式で、テーブル、グラフィック、インタラクティブコンテンツを含むリッチドキュメントを簡単に共有できます。 これらの企業は、Adobe Acrobat Services個のAPIを使用して、Microsoft Word、Microsoft Excel、グラフィック、およびその他の様々な文書形式から共有可能なPDFレポートを作成できます。
例えば、ソーシャルメディア追跡会社を経営するとします。 顧客がサイトのパスワードで保護された部分にログインして、キャンペーン分析を表示します。 多くの場合、経営幹部、株主、寄付者、その他の利害関係者と統計を共有したいと考えています。 ダウンロード可能なPDF文書は、番号やグラフなどを顧客に伝える場合に便利です。
PDFサービスAPIをWebサイトに組み込むと、お客様の外出先でPDFレポートを作成できます。 PDFを作成し、それらを1つの便利なレポートにまとめることができます。このレポートは、お客様がダウンロードし、関係者に渡すことができます。
学習内容
この実践チュートリアルでは、Node.jsとExpress.js環境で(一部のJavaScript、HTML、CSSを使用して)PDFサービスSDKを使用し、PDF指向の機能を既存のwebサイトにすばやく簡単に追加する方法について学習します。 このWebサイトには、管理者がレポートをアップロードするページがあります。管理者は、使用可能なレポートのリストやPDFに変換する文書を確認したり、システムで生成されたPDFをダウンロードするのに役立つエンドポイントを確認したりできます。
関連APIとリソース
お客様向けのキャンペーンレポートダッシュボード
ここでは、顧客レポートエリアと管理者セクションを持つ基本的なExpress.js webアプリケーションがあります。 このアプリケーションは、ソーシャルメディアキャンペーンのレポートを表示できます。 例えば、広告がクリックされた回数を示すことができます。
このプロジェクトは、GitHubリポジトリからダウンロードできます。
次に、レポートを公開する方法について説明します。
レポートのアップロード
シンプルにするために、ここではファイルシステムベースのアップロードと処理のみを使用してください。 Express.jsでは、 fsモジュールを使用して、ディレクトリ内の使用可能なファイルをすべて一覧表示できます。
同じページで、お客様が確認できるように管理者がレポートファイルをサーバーにアップロードできるようにします。 これらのファイルは、Microsoft Word、Microsoft Excel、HTML、およびグラフィックファイルを含むその他のデータ形式など、さまざまな形式で保存できます。 管理ページは次のようになります。
管理者がファイルを選択してアップロードすると、他のユーザーがアクセスできるパブリックリポジトリに移動されます。 同じリポジトリを使用して管理者ページからドキュメントを公開し、顧客が利用できるマーケティングレポートを一覧表示します。 このコードは次のとおりです。
router.get('/', (req, res) => {
try {
let files = fs.readdirSync('./public/documents/raw') // read the files
res.status(200).render("reports", { page: 'reports', files: files });
} catch (error) {
res.status(500).render("crash", { error: error });
}
});
このコードはすべてのファイルをリストし、ファイルリストのビューをレンダリングします。
レポートの選択
ユーザー側には、顧客がソーシャルメディアキャンペーンレポートに含める文書を選択するためのフォームがあります。 わかりやすくするために、サンプルページでは、ドキュメント名とチェックボックスのみを表示して、ドキュメントを選択します。 1つまたは複数のレポートを選択して、1つのPDF文書にまとめることができます。
より高度なユーザーインターフェイスの場合は、レポートのプレビューもここに表示できます。
PDFレポートの生成
PDFサービスSDKを使用して、データ入力からPDFレポートを作成します。 上記のスクリーンショットに示されているように、データは、Microsoft Word、Microsoft Excel、HTML、グラフィックなど、様々なデータフォーマットから取得されます。 まず、PDFサービスSDK用のnpmパッケージをインストールします。
$ npm install --save @adobe/documentservices-pdftools-node-sdk
開始する前に、API資格情報(Adobeからの解放)が必要です。 Acrobat Servicesアカウントを6か月間無料で使用した後、従量課金制で文書トランザクション1件につきわずか$0.05で利用できます。
アーカイブファイルをダウンロードし、JSONファイルを展開して、資格情報と秘密鍵を取得します。 サンプルプロジェクトで、 srcディレクトリにファイルを配置します。
これで資格情報の設定が完了したので、PDF変換タスクを記述できます。 このデモでは、アプリケーションで次の2つの操作を実行する必要があります。
-
RAW文書をPDFファイルに変換
-
複数のPDFファイルを1つのレポートにまとめる
全体的な手順は、任意の操作を実行する場合と同様です。 唯一の違いは、使用するサービスです。 次のコードでは、RAW文書をPDFファイルに変換します。
async function createPdf(rawFile, outputPdf) {
try {
// configurations
const credentials = adobe.Credentials
.serviceAccountCredentialsBuilder()
.fromFile("./src/pdftools-api-credentials.json")
.build();
// Capture the credential from app and show create the context
const executionContext = adobe.ExecutionContext.create(credentials),
operation = adobe.CreatePDF.Operation.createNew();
// Pass the content as input (stream)
const input = adobe.FileRef.createFromLocalFile(rawFile);
operation.setInput(input);
// Async create the PDF
let result = await operation.execute(executionContext);
await result.saveAsFile(outputPdf);
} catch (err) {
console.log('Exception encountered while executing operation', err);
}
}
上記のコードでは、資格情報を読み取り、実行コンテキストを作成します。 PDFサービスSDKでは、リクエストを認証するために実行コンテキストが必要です。
次に、PDFを作成する操作を実行して、RAW文書をPDF形式に変換します。 最後に、outputPdf
パラメーターを使用してPDFレポートをコピーします。 コード例では、このコードはsrc/helpers/pdf.jsファイルの下にあります。 このチュートリアルの後半で、PDFモジュールを読み込み、このメソッドを呼び出します。
前のセクションで示したように、お客様は次のページに移動して、PDFに変換するレポートを選択できます。
お客様がこれらのレポートを1つ以上選択すると、PDFファイルが作成されます。
まず、1つのPDFファイルの動作を確認します。 ユーザーが1つのレポートを選択した場合は、そのレポートをPDFに変換し、ダウンロードリンクを提供するだけです。
try {
console.log(`[INFO] generating the report...`);
await pdf.createPdf(`./public/documents/raw/${reports}`, `./public/documents/processed/output.pdf`);
console.log(`[INFO] sending the report...`);
res.status(200).render("download", { page: 'reports', filename: 'output.pdf' });
} catch(error) {
console.log(`[ERROR] ${JSON.stringify(error)}`);
res.status(500).render("crash", { error: error });
}
このコードはレポートを作成し、ダウンロードURLをお客様と共有します。 出力Webページは次のとおりです。
出力PDFは次のとおりです。
お客様は、複数のファイルを選択して結合レポートを生成できます。 お客様が複数の文書を選択した場合は、2つの処理を実行します。1つは、各文書の一部としてPDFを作成する処理、もう1つは、それらを1つのPDFレポートにまとめる処理です。
async function combinePdf(pdfs, outputPdf) {
try {
// configurations
const credentials = adobe.Credentials
.serviceAccountCredentialsBuilder()
.fromFile("./src/pdftools-api-credentials.json")
.build();
// Capture the credential from app and show create the context
const executionContext = adobe.ExecutionContext.create(credentials),
operation = adobe.CombineFiles.Operation.createNew();
// Pass the PDF content as input (stream)
for (let pdf of pdfs) {
const source = adobe.FileRef.createFromLocalFile(pdf);
operation.addInput(source);
}
// Async create the PDF
let result = await operation.execute(executionContext);
await result.saveAsFile(outputPdf);
} catch (err) {
console.log('Exception encountered while executing operation', err);
}
}
このメソッドはsrc/helpers/pdf.jsファイルで使用でき、モジュールの書き出しの一部として公開されます。
try {
console.log(`[INFO] creating a batch report...`);
// Create a batch report and send it back
let partials = [];
for (let index in reports) {
const name = `partial-${index}-${reports[index]}`;
await pdf.createPdf(`./public/documents/raw/${reports[index]}`, `./public/documents/processed/${name}`);
partials.push(`./public/documents/processed/${name.replace('docx', 'pdf').replace('xlsx', 'pdf')}`);
}
await pdf.combinePdf(partials, `./public/documents/processed/output.pdf`);
console.log(`[INFO] sending the combined report...`);
res.status(200).render("download", { page: 'reports', filename: 'output.pdf' });
} catch(error) {
console.log(`[ERROR] ${JSON.stringify(error)}`);
res.status(500).render("crash", { error: error });
}
このコードは、複数の入力ドキュメントのコンパイルされたレポートを生成します。 追加された関数は、combinePdf
メソッドだけです。このメソッドは、PDFファイルのパス名の一覧を受け取り、1つの出力PDFを返します。
これで、ソーシャルメディアダッシュボードの顧客は、自分のアカウントから関連するレポートを選択し、1つの便利なPDFとしてダウンロードできるようになりました。 このダッシュボードを使用すると、管理者やその他の関係者、キャンペーンの成功をデータ、表、グラフで表示できます。この形式は例外なく開きやすい形式です。
次の手順
この実践チュートリアルでは、お客様が関連するレポートを簡単に共有できるPDFとしてダウンロードできるように、PDFサービスAPIの使用方法について説明しました。 Node.jsアプリケーションを作成して、PDFのレポート作成および読み取りサービス用のPDFサービスAPIの機能を紹介しました。 このアプリケーションでは、お客様が1つのレポート文書をダウンロードする方法や、複数の文書を組み合わせて1つのPDFレポートに結合する方法を示しました。
このAdobe対応アプリケーションを使用すると、ソーシャルメディアダッシュボードのお客様は、必要なレポートを取得して共有することができます。受け取ったすべてのユーザーがデバイスにMicrosoft Officeなどのソフトウェアをインストールしているかどうかを心配する必要はありません。 独自のアプリケーションで同じ方法を使用して、ユーザーがドキュメントを表示、結合、ダウンロードできるようにすることができます。 または、Adobeのその他多くのAPIをチェックして、署名の追加や追跡などを行うことができます。
開始するには、無料のAdobe Acrobat Servicesアカウントをクレームし、従業員と顧客の魅力的なレポートエクスペリエンスを作成します。 6か月間アカウントを無料で利用でき、マーケティング活動の拡大に合わせて従量課金制で、1つのドキュメントトランザクションにつき$0.05になります。