AEM Forms で Output サービスや Forms サービスを使用した開発 developing-with-output-and-forms-services-in-aem-forms

AEM Formsでの Output およびForms Service API を使用した開発について説明します。

この記事では、以下に注目します。

  • Output サービス — 通常、このサービスは、xdp テンプレートまたは pdf と xml データを結合して統合された pdf を生成するために使用されます。
  • FormsService — これは非常に汎用性の高いサービスで、xdp を pdf としてレンダリングしたり、データの書き出し/PDFファイルへの読み込みを行ったりできます。

次のコードスニペットは、データを PDF ファイルから書き出しています。

javax.servlet.http.Part pdfPart = request.getPart("pdffile");
String filePath = request.getParameter("saveLocation");
java.io.InputStream pdfIS = pdfPart.getInputStream();
com.adobe.aemfd.docmanager.Document pdfDocument = new com.adobe.aemfd.docmanager.Document(pdfIS);
com.adobe.fd.forms.api.FormsService formsservice = sling.getService(com.adobe.fd.forms.api.FormsService.class);
com.adobe.aemfd.docmanager.Document xmlDocument = formsservice.exportData(pdfDocument,com.adobe.fd.forms.api.DataFormat.Auto);

行 1 ではリクエストから pdffile を抽出します。

行 2 ではリクエストから saveLocation を抽出します。

行 5 では FormsService を取得します。

行 6 では PDF ファイルから xmlData を書き出します。

システム上のサンプルパッケージをテストするには:

AEM パッケージマネージャーを使用して、パッケージをダウンロードしてインストールします。

パッケージをインストールした後、Adobe Granite CSRF フィルターで次の URL を許可リストに加える必要があります。

  1. 上記のパスを許可リストに加えるには、下記の手順に従ってください。
  2. configMgr にログインします
  3. Adobe Granite CSRF フィルターを検索します。
  4. 除外セクションに次の 3 つのパスを追加し、保存します。
  5. /content/AemFormsSamples/mergedata
  6. /content/AemFormsSamples/exportdata
  7. /content/AemFormsSamples/outputservice
  8. /content/AemFormsSamples/renderxdp
  9. 「Sling Referrer Filter」を検索します。
  10. 「Allow Empty」チェックボックスをオンにします(この設定は、テスト目的でのみ使用する必要があります)。

サンプルのテスト

サンプルコードをテストするには、様々な方法があります。Postman アプリを使用するのが最もすばやく簡単です。Postmanを使用すると、サーバーにPOSTリクエストを送信できます。

  • システムにPostmanアプリをインストールします。
  • アプリを起動し、適切な URL を入力します。
  • ドロップダウンリストから「POST」を選択していることを確認します。
  • 「Authorization」を「Basic Auth」として指定してください。 AEM Server のユーザー名とパスワードの指定
  • 「本文」タブで要求パラメーターを指定します。
  • 「送信」ボタンをクリックします。

このパッケージには 4 つのサンプルが含まれています。 次の段落では、Output サービスまたは Forms サービスを使用するタイミング、サービスの URL、各サービスが想定する入力パラメーターについて説明します。

OutputService を使用した xdp テンプレートとのデータの結合

  • Output サービスを使用してデータを xdp または PDF ドキュメントと結合し、統合された PDF を生成します。

  • POST URL:http://localhost:4502/content/AemFormsSamples/outputservice.html

  • リクエストパラメーター:

    • xdp_or_pdf_file:データの結合先となる xdp または PDF ファイル
    • xmlfile:xdp_or_pdf_file と結合される xml データファイル
    • saveLocation:レンダリングしたドキュメントをファイルシステム上に保存する場所。 例:c:\documents\sample.pdf

FormsService API の使用

データを読み込み

  • FormsService importData を使用してデータをPDFファイルに読み込む

  • POSTURL:http://localhost:4502/content/AemFormsSamples/mergedata.html

  • リクエストパラメーター:

    • pdffile:データの結合先の PDF ファイル
    • xmlfile:PDF ファイルと結合される xml データファイル
    • saveLocation:レンダリングしたドキュメントをファイルシステム上に保存する場所。 例:c:\\outputsample.pdf

データを書き出し

  • FormsService exportData API を使用して、データファイルからPDFを書き出す

  • POSTURL - http://localhost:4502/content/AemFormsSamples/exportdata.html

  • リクエストパラメーター:

    • pdffile:データの書き出し元の PDF ファイル
    • saveLocation:書き出したデータをファイルシステム上に保存する場所。例:c:\documents\exported_data.xml

Render XDP

  • XDP テンプレートを静的 PDF または動的 PDF としてレンダリング
  • FormsService renderPDFForm API を使用して xdp テンプレートをPDFとしてレンダリングする
  • POSTURL - http://localhost:4502/content/AemFormsSamples/renderxdp?xdpName=f1040.xdp
  • リクエストパラメーター:
    • xdpName:pdf としてレンダリングする xdp ファイルの名前

この Postman コレクションを読み込んで、API をテストできます。

recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e