API を使用して AEM Forms でレコードのドキュメントを生成する
最終更新日: 2025年4月2日
- 適用対象:
- Experience Manager 6.4
- Experience Manager 6.5
- トピック:
- アダプティブフォーム
作成対象:
- 経験者
- 開発者
レコードのドキュメント(DOR)をプログラムで生成する
この記事では、com.adobe.aemds.guide.addon.dor.DoRService API
を使用して レコードのドキュメント をプログラムで生成する方法を説明します。レコードのドキュメントは、アダプティブフォームで取り込まれる PDF バージョンのデータです。
- コードスニペットを次に示します。 最初の行は DOR サービスを取得します。
- DoROptions を設定します。
- DoRService の render メソッドを呼び出し、DoROptions オブジェクトを render メソッドに渡します。
String dataXml = request.getParameter("data");
System.out.println("Got " + dataXml);
Session session;
com.adobe.aemds.guide.addon.dor.DoRService dorService = sling.getService(com.adobe.aemds.guide.addon.dor.DoRService.class);
System.out.println("Got ... DOR Service");
com.mergeandfuse.getserviceuserresolver.GetResolver aemDemoListings = sling.getService(com.mergeandfuse.getserviceuserresolver.GetResolver.class);
System.out.println("Got aem DemoListings");
resourceResolver = aemDemoListings.getFormsServiceResolver();
session = resourceResolver.adaptTo(Session.class);
resource = resourceResolver.getResource("/content/forms/af/sandbox/1201-borrower-payments");
com.adobe.aemds.guide.addon.dor.DoROptions dorOptions = new com.adobe.aemds.guide.addon.dor.DoROptions();
dorOptions.setData(dataXml);
dorOptions.setFormResource(resource);
java.util.Locale locale = new java.util.Locale("en");
dorOptions.setLocale(locale);
com.adobe.aemds.guide.addon.dor.DoRResult dorResult = dorService.render(dorOptions);
byte[] fileBytes = dorResult.getContent();
com.adobe.aemfd.docmanager.Document dorDocument = new com.adobe.aemfd.docmanager.Document(fileBytes);
resource = resourceResolver.getResource("/content/usergenerated/content/aemformsenablement");
Node paydotgov = resource.adaptTo(Node.class);
java.util.Random r = new java.util.Random();
String nodeName = Long.toString(Math.abs(r.nextLong()), 36);
Node fileNode = paydotgov.addNode(nodeName + ".pdf", "nt:file");
System.out.println("Created file Node...." + fileNode.getPath());
Node contentNode = fileNode.addNode("jcr:content", "nt:resource");
Binary binary = session.getValueFactory().createBinary(dorDocument.getInputStream());
contentNode.setProperty("jcr:data", binary);
JSONWriter writer = new JSONWriter(response.getWriter());
writer.object();
writer.key("filePath");
writer.value(fileNode.getPath());
writer.endObject();
session.save();
ローカルシステムでこれを試すには、次の手順に従ってください
- パッケージマネージャーを使用して記事アセットをダウンロードしてインストールします
- 「サービスユーザーを作成する」記事の一部として提供されている DevelopingWithServiceUser バンドルをインストールして開始していることを確認してください。
- configMgr にログインします
- Apache Sling Service User Mapper Service を探します。
- サービスマッピングセクションで、エントリ DevelopingWithServiceUser.core:getformsresourceresolver=fd-service を必ず入力してください。
- フォームを開きます
- フォームに入力し、「PDF を表示」をクリックします
- ブラウザーの新しいタブに DOR が表示されます
トラブルシューティングのヒント
PDF は、新しいブラウザータブに表示されません。
- ブラウザーでポップアップをブロックしていないことを確認します
- 管理者として AEM サーバーを起動していることを確認してください(少なくとも Windows の場合)
- 「DevelopingWithServiceUser」バンドルが アクティブ状態 にあることを確認します
- システムユーザー「fd-service」が次のノードに対する読み取り、変更、作成の権限を持っていることを確認してください
/content/usergenerated/content/aemformsenablement
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e