在本文中,我們將使用輸出服務來產生使用xdp片段的pdf檔案。 主要xdp和片段位於crx存放庫中。 請務必在AEM中模擬檔案系統資料夾結構。 例如,如果您在xdp的片段資料夾中使用片段,您必須建立一個名為的資料夾 片段 在AEM的基本資料夾底下。 基底資料夾將包含您的基底xdp範本。 例如,如果您的檔案系統上有下列結構
您可以使用建立所需的結構 表單和檔案ui
以下是使用2個片段的範例xdp的資料夾結構
下列ECMA指令碼已用於產生PDF。 請注意程式碼中使用ResourceResolver和ResourceResolverHelper。 需要ResourceReolver,因為此程式碼在任何使用者內容之外執行。
var inputMap = processorContext.getInputMap();
var itr = inputMap.entrySet().iterator();
var entry = inputMap.entrySet().iterator().next();
var xmlData = inputMap.get(entry.getKey());
log.info("Got XML Data File");
var resourceResolverHelper = sling.getService(Packages.com.adobe.granite.resourceresolverhelper.ResourceResolverHelper);
var aemDemoListings = sling.getService(Packages.com.mergeandfuse.getserviceuserresolver.GetResolver);
log.info("Got service resolver");
var resourceResolver = aemDemoListings.getFormsServiceResolver();
//The ResourceResolverHelper execute's the following code within the context of the resourceResolver
resourceResolverHelper.callWith(resourceResolver, {call: function()
{
//var statement = new Packages.com.adobe.aemfd.docmanager.Document("/content/dam/formsanddocuments/xdpdocuments/main.xdp",resourceResolver);
var outputService = sling.getService(Packages.com.adobe.fd.output.api.OutputService);
var pdfOutputOptions = new Packages.com.adobe.fd.output.api.PDFOutputOptions();
pdfOutputOptions.setContentRoot("crx:///content/dam/formsanddocuments/xdpdocuments");
pdfOutputOptions.setAcrobatVersion(Packages.com.adobe.fd.output.api.AcrobatVersion.Acrobat_11);
var dataMergedDocument = outputService.generatePDFOutput("main.xdp",xmlData,pdfOutputOptions);
//var dataMergedDocument = outputService.generatePDFOutput(statement,xmlData,pdfOutputOptions);
processorContext.setResult("mergeddocument.pdf",dataMergedDocument);
log.info("Generated the pdf document with fragments");
}
});
在您的系統上測試範例套件的方式
新增專案 DevelopingWithServiceUser.core:getformsresourceresolver=fd-service 使用者對應程式服務修正中,如下方熒幕擷圖所示
下載並匯入範例xdp檔案和ECMA指令碼.
這會在c:/fragmentsandoutputservice資料夾中建立watched資料夾結構
擷取範例資料檔案 並將其放置在監視資料夾的安裝資料夾中(c:\fragmentsandoutputservice\install)
檢查watched資料夾設定的結果資料夾,找出產生的pdf檔案