I den här artikeln använder vi utdatatjänsten för att generera PDF-filer med hjälp av xdp-fragment. Den huvudsakliga xdp-filen och fragmenten finns i crx-databasen. Det är viktigt att efterlikna filsystemets mappstruktur i AEM. Om du till exempel använder ett fragment i fragmentmappen i xdp måste du skapa en mapp med namnet fragment under din AEM. Basmappen kommer att innehålla din bas-xdp-mall. Om du till exempel har följande struktur i filsystemet
Du kan skapa den struktur som behövs med formulär och dokumentgränssnitt
Nedan följer mappstrukturen för exempelkoden xdp som använder 2 fragment
Följande kod användes för att inkludera fragment i PDF-filen
System.out.println("I am in using fragments POST.jsp");
// contentRootURI is the base folder. All fragments are relative to this folder
String contentRootURI = request.getParameter("contentRootURI");
String xdpName = request.getParameter("xdpName");
javax.servlet.http.Part xmlDataPart = request.getPart("xmlDataFile");
System.out.println("Got xml file");
String filePath = request.getParameter("saveLocation");
java.io.InputStream xmlIS = xmlDataPart.getInputStream();
com.adobe.aemfd.docmanager.Document xmlDocument = new com.adobe.aemfd.docmanager.Document(xmlIS);
com.adobe.fd.output.api.OutputService outputService = sling.getService(com.adobe.fd.output.api.OutputService.class);
if (outputService == null) {
System.out.println("The output service is null.....");
} else {
System.out.println("The output service is not null.....");
}
com.adobe.fd.output.api.PDFOutputOptions pdfOptions = new com.adobe.fd.output.api.PDFOutputOptions();
pdfOptions.setAcrobatVersion(com.adobe.fd.output.api.AcrobatVersion.Acrobat_11);
pdfOptions.setContentRoot(contentRootURI);
com.adobe.aemfd.docmanager.Document generatedDocument = outputService.generatePDFOutput(xdpName, xmlDocument, pdfOptions);
generatedDocument.copyToFile(new java.io.File(filePath));
out.println("Document genreated and saved to " + filePath);
Testa exempelpaketet på datorn
När du har installerat paketet måste du tillåtslista följande URL:er i Adobe Granite CSRF-filtret.
Du kan testa exempelkoden på flera olika sätt. Det snabbaste och enklaste är att använda Postman-appen. Med Postman kan du göra POSTER till servern. Installera Postman på datorn.
Starta programmet och ange följande URL för att testa API:t för exportdata
Se till att du har valt "POST" i listrutan http://localhost:4502/content/AemFormsSamples/usingfragments.html Kontrollera att du har angett "Auktorisering" som "Grundläggande autentisering". Ange AEM användarnamn och lösenord Navigera till fliken "Brödtext" och ange parametrarna för begäran enligt bilden nedan
Klicka sedan på knappen Skicka
Du kan importera den här postmansamlingen för att testa API:t