Stitching XDP tramite il servizio Assembler
- Si applica a:
- Experience Manager 6.4
- Experience Manager 6.5
- Argomenti:
- Assembler
Creato per:
- Esperto
- Sviluppatore
Questo articolo fornisce le risorse per dimostrare la capacità di unire i documenti XDP utilizzando il servizio Assembler.
Il seguente codice jsp è stato scritto per inserire un sottomodulo denominato address da un documento xdp denominato address.xdp in un punto di inserimento denominato address nel documento master.xdp. L’XDP risultante è stato salvato nella cartella principale dell’installazione di AEM.
Il servizio Assembler si basa su documenti DDX validi per descrivere la manipolazione dei documenti PDF. È possibile fare riferimento al documento di riferimento DDX qui.La pagina 40 contiene informazioni sull'unione xdp.
javax.servlet.http.Part ddxFile = request.getPart("xdpstitching.ddx");
System.out.println("Got DDX");
java.io.InputStream ddxIS = ddxFile.getInputStream();
com.adobe.aemfd.docmanager.Document ddxDocument = new com.adobe.aemfd.docmanager.Document(ddxIS);
javax.servlet.http.Part masterXdpPart = request.getPart("masterxdp.xdp");
System.out.println("Got master xdp");
java.io.InputStream masterXdpPartIS = masterXdpPart.getInputStream();
com.adobe.aemfd.docmanager.Document masterXdpDocument = new com.adobe.aemfd.docmanager.Document(masterXdpPartIS);
javax.servlet.http.Part fragmentXDPPart = request.getPart("fragment.xdp");
System.out.println("Got fragment.xdp");
java.io.InputStream fragmentXDPPartIS = fragmentXDPPart.getInputStream();
com.adobe.aemfd.docmanager.Document fragmentXdpDocument = new com.adobe.aemfd.docmanager.Document(fragmentXDPPartIS);
java.util.Map < String, Object > mapOfDocuments = new java.util.HashMap < String, Object > ();
mapOfDocuments.put("master.xdp", masterXdpDocument);
mapOfDocuments.put("address.xdp", fragmentXdpDocument);
com.adobe.fd.assembler.service.AssemblerService assemblerService = sling.getService(com.adobe.fd.assembler.service.AssemblerService.class);
if (assemblerService != null)
System.out.println("Got assembler service");
com.adobe.fd.assembler.client.AssemblerOptionSpec aoSpec = new com.adobe.fd.assembler.client.AssemblerOptionSpec();
aoSpec.setFailOnError(true);
com.adobe.fd.assembler.client.AssemblerResult assemblerResult = assemblerService.invoke(ddxDocument, mapOfDocuments, aoSpec);
com.adobe.aemfd.docmanager.Document finalXDP = assemblerResult.getDocuments().get("stitched.xdp");
finalXDP.copyToFile(new java.io.File("stitched.xdp"));
Il file DDX per inserire frammenti in un altro xdp è elencato di seguito. Il DDX inserisce il sottomodulo address da address.xdp nel punto di inserimento denominato address nel master.xdp. Il documento risultante denominato stitched.xdp è stato salvato nel file system.
<?xml version="1.0" encoding="UTF-8"?>
<DDX xmlns="http://ns.adobe.com/DDX/1.0/">
<XDP result="stitched.xdp">
<XDP source="master.xdp">
<XDPContent insertionPoint="address" source="address.xdp" fragment="address"/>
</XDP>
</XDP>
</DDX>
Per utilizzare questa funzionalità sul server AEM
- Scarica il pacchetto di unione XDP nel sistema locale.
- Carica e installa il pacchetto utilizzando Gestione pacchetti
- Estrai il contenuto di questo file zip per ottenere il file xdp e DDX di esempio
Dopo aver installato il pacchetto, sarà necessario inserire nell'elenco Consentiti i seguenti URL nel filtro CSRF di Adobe Granite.
- Segui i passaggi indicati di seguito per inserire nell'elenco Consentiti i percorsi menzionati in precedenza.
- Accesso a configMgr
- Cerca filtro CSRF di Adobe Granite
- Aggiungi il seguente percorso nelle sezioni escluse e salva
/content/AemFormsSamples/assemblerservice
- Cerca "Sling Referrer filter" (Filtro referrer Sling)
- Selezionare la casella di controllo Consenti vuoto. (questa impostazione deve essere utilizzata solo a scopo di test)
Esistono diversi modi per testare il codice di esempio. Il metodo più rapido e semplice consiste nell’utilizzare l’app Postman. Postman consente di effettuare richieste POST al server. Installa l’app Postman sul sistema.
Avvia l’app e immetti il seguente URL per testare l’API di esportazione dei dati
http://localhost:4502/content/AemFormsSamples/assemblerservice.html
Fornire i seguenti parametri di input come specificato nella schermata. Puoi utilizzare i documenti di esempio scaricati in precedenza,