DocumentatieAEMTutorials voor AEMTutorials voor AEM Forms

PDF-documenten genereren met fragmenten

Laatst bijgewerkt: 5 mei 2025
  • Van toepassing op:
  • Experience Manager 6.4
  • Experience Manager 6.5
  • Onderwerpen:

Gemaakt voor:

  • tussenpersoon
  • Ontwikkelaar

In dit artikel gebruiken we de uitvoerservice om PDF-bestanden te genereren met xdp-fragmenten. De hoofd xdp en de fragmenten verblijven in de crx bewaarplaats. Het is belangrijk om de mapstructuur van het bestandssysteem in AEM na te bootsen. Bijvoorbeeld als u een fragment in fragmentomslag in uw xdp gebruikt moet u een omslag creƫren genoemd fragmenten onder uw basisomslag in AEM. De basismap bevat uw basis-xdp-sjabloon. Bijvoorbeeld, als u de volgende structuur op uw dossiersysteem hebt

  • c:\xdptemplates - Deze bevat uw basis-xdp-sjabloon
  • c:\xdptemplates\fragments - Deze map bevat fragmenten en de hoofdsjabloon verwijst naar het fragment zoals hieronder wordt weergegeven
    fragment-xdp .
  • De omslag xdpdocuments zal uw basissjabloon en de fragmenten in fragments omslag bevatten

U kunt de vereiste structuur tot stand brengen gebruikend vormen en document ui

Hier volgt de mapstructuur voor de voorbeeld-xdp die 2 fragmenten gebruikt
vormendocument

  • Uitvoerservice - Deze service wordt doorgaans gebruikt om XML-gegevens samen te voegen met de xdp-sjabloon of pdf om samengevoegde pdf te genereren. Voor meer details, gelieve te verwijzen naar javadocvoor de dienst van de Output. In dit voorbeeld gebruiken we fragmenten die zich in de crx-opslagplaats bevinden.

De volgende code is gebruikt om fragmenten in het PDF-bestand op te nemen

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);

om het steekproefpakket op uw systeem te testen

  • Download en importeer de xdp-voorbeeldbestanden naar AEM
  • Download en installeer het pakket met behulp van AEM package Manager
  • De voorbeeld-xdp en -fragmenten kunnen hier worden gedownload

nadat u het pakket installeert zult u volgende URLs in de Filter van Adobe moeten lijsten van gewenste personen Granite CSRF.

  1. Volg de onderstaande stappen om de hierboven vermelde paden te lijsten van gewenste personen.
  2. Login aan configMgr
  3. Zoeken naar Adobe Granite CSRF-filter
  4. Het volgende pad toevoegen aan de uitgesloten secties en opslaan
  5. /content/AemFormsSamples/usingfragments

U kunt de voorbeeldcode op verschillende manieren testen. De snelste en eenvoudigste manier is om Postman-app te gebruiken. Met Postman kunt u POST-aanvragen indienen bij uw server. Installeer de Postman-toepassing op uw systeem.
Start de app en voer de volgende URL in om de API voor exportgegevens te testen

Controleer of u "POST" hebt geselecteerd in de vervolgkeuzelijst
http://localhost:4502/content/AemFormsSamples/usingfragments.html
Zorg ervoor dat u "Autorisatie" opgeeft als "Basic Auth". Geef de gebruikersnaam en het wachtwoord voor de AEM Server op
Navigeer naar het tabblad Body en geef de aanvraagparameters op, zoals in de onderstaande afbeelding wordt getoond
uitvoer
Klik vervolgens op Verzenden

U kunt deze postmanverzameling importeren om de API te testen

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