Verwenden des Assembler-Dienstes in AEM Forms
Letzte Aktualisierung: 2. April 2025
- Gilt für:
- Experience Manager 6.4
- Experience Manager 6.5
- Themen:
- Assembler
Erstellt für:
- Experte
- Entwickler
In diesem Artikel finden Sie die Assets, mit denen Sie mehrere PDF-Dateien in den Browser ziehen und die zusammengestellte PDF-Datei in Ihrem Dateisystem speichern können. Im Folgenden finden Sie den Code für das Servlet, das mithilfe des Browsers die hochgeladenen PDF-Dateien zusammenstellt.
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) {
log.debug("In Assemble Uploaded Files");
Map<String, Object> mapOfDocuments = new HashMap<String, Object>();
final boolean isMultipart = org.apache.commons.fileupload.servlet.ServletFileUpload.isMultipartContent(request);
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = null;
try {
docBuilder = docFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
org.w3c.dom.Document ddx = docBuilder.newDocument();
Element rootElement = ddx.createElementNS("http://ns.adobe.com/DDX/1.0/", "DDX");
ddx.appendChild(rootElement);
Element pdfResult = ddx.createElement("PDF");
pdfResult.setAttribute("result", "GeneratedDocument.pdf");
rootElement.appendChild(pdfResult);
if (isMultipart) {
final java.util.Map<String, org.apache.sling.api.request.RequestParameter[]> params = request
.getRequestParameterMap();
for (final java.util.Map.Entry<String, org.apache.sling.api.request.RequestParameter[]> pairs : params
.entrySet()) {
final String k = pairs.getKey();
final org.apache.sling.api.request.RequestParameter[] pArr = pairs.getValue();
final org.apache.sling.api.request.RequestParameter param = pArr[0];
try {
if (!param.isFormField()) {
final InputStream stream = param.getInputStream();
log.debug("the file name is " + param.getFileName());
log.debug("Got input Stream inside my servlet####" + stream.available());
com.adobe.aemfd.docmanager.Document document = new Document(stream);
mapOfDocuments.put(param.getFileName(), document);
org.w3c.dom.Element pdfSourceElement = ddx.createElement("PDF");
pdfSourceElement.setAttribute("source", param.getFileName());
pdfSourceElement.setAttribute("bookmarkTitle", param.getFileName());
pdfResult.appendChild(pdfSourceElement);
log.debug("The map size is " + mapOfDocuments.size());
} else {
log.debug("The form field is" + param.getString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
com.adobe.aemfd.docmanager.Document ddxDocument = documentServices.orgw3cDocumentToAEMFDDocument(ddx);
Document assembledDocument = documentServices.assembleDocuments(mapOfDocuments, ddxDocument);
String path = documentServices.saveDocumentInCrx("/content/ocrfiles", assembledDocument);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("path", path);
response.setContentType("application/json");
response.setHeader("Cache-Control", "nocache");
response.setCharacterEncoding("utf-8");
PrintWriter out = null;
out = response.getWriter();
out.println(jsonObject.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Sie können diese Funktion wie folgt auf Ihrem AEM-Server verwenden:
- Laden Sie die Datei AssembleMultipleFiles.zip auf Ihr lokales System herunter.
- Verwenden Sie Package Manager, um das Paket hochzuladen und zu installieren.
- Laden Sie das Bundle für benutzerdefinierte Dokumentendienste herunter.
- Laden Sie das Bundle zur Entwicklung mit Dienstbenutzenden herunter.
- Stellen Sie die Bundles bereit und starten Sie sie mithilfe der Felix-Web-Konsole.
- Verweisen Sie Ihren Browser auf AssemblePdfs.html.
- Legen Sie einige PDF-Dateien per Drag & Drop ab.
Stellen Sie sicher, dass Sie Ihre AEM Forms-Installation abgeschlossen haben. Alle Bundles müssen sich in einem aktiven Status befinden.
Stellen Sie sicher, dass Sie Boot Delegate RSA und BouncyCastle-Bibliotheken hinzugefügt haben, wie unter Installieren von AEM Forms beschrieben.
Einschränkungen für diese Demo
-
Der Code verarbeitet keine XFA-basierten PDF-Dokumente.
-
Stellen Sie sicher, dass Sie nur PDF-Dateien per Drag & Drop ablegen.
Vorherige SeitePDFs in Karussellkomponenten
Nächste SeiteXDP-Zuordnung mit Assembler-Dienst
Experience Manager
- Überblick
- Best Practices, die zu befolgen sind
- Einrichten der OKTA-Authentifizierung mit AEM Author
- Erstellen Ihres ersten adaptiven Formulars
- 1 – Einführung und Einrichtung
- 2 – Erstellen einer adaptiven Formularvorlage
- 3 – Erstellen von Formularfragmenten
- 4 – Erstellen eines adaptiven Formulars
- 5 – Konfigurieren des Stammbereichs und Hinzufügen untergeordneter Bedienfelder
- 6 – Hinzufügen von Komponenten zum Personen-Panel
- 7 – Hinzufügen einer Tabelle zum Einkommensbereich
- 8 – Konfigurieren des Asset-Panels
- 9 – Verwendung von benutzerdefinierten Funktionen und Code-Editor
- Handhabung von Formularübermittlungen
- Erstellen eines Prüfung-Workflows
- Konfigurieren des adaptiven Formulars zur Auslösung des Workflows
- Dankesseite anzeigen
- Danke-Seite anpassen
- Übermittlung an externen Endpunkt
- Senden von E-Mails
- Arbeitsablauf für gebührenpflichtige Zeitüberschreitung bei Anfrage
- Konfigurieren des adaptiven Formulars zum Auslösen von AEM Workflow – Video
- Anpassen der Benachrichtigung „Aufgabe zuweisen“
- Nützliche Integrationen
- Erstellen eines OSGi-Bundles
- Adaptive Formulare
- Installieren von AEM Forms unter Windows
- Installieren von 32-Bit-Paketen unter Linux
- Vorbefüllungsdienst in adaptiven Formularen
- Adaptives Formular mithilfe von Abfrageparametern ausfüllen
- QR-Code in AEM Forms
- Benutzerdefiniertes Senden in adaptiven Formularen
- Captcha in adaptiven Formularen
- Benutzerdefinierte Funktionen im Regeleditor
- Einbetten des adaptiven Formulars in eine Webseite
- Erstellen eines Zeichenfolgen-Array
- Element-Ladepfad in AEM Forms
- Verwenden von eingestellten Werten in XML im OSGI-Workflow
- Verwenden von eingestellten Werten in JSON im OSGI-Workflow
- Senden von E-Mail-Komponente im AEM Forms Workflow
- Generieren von DocumentOfRecord mithilfe der API
- Anzeigen von Inline-Bildern
- DAM-Bilder inline anzeigen
- Verwenden der GeoLocation-API
- Verwenden von Transaktionsberichten
- Integration von Benutzerprofildaten in AEM Forms
- Microsoft Dynamics mit AEM Forms
- Verbesserungen beim Regeleditor
- Einschränken des Zugriffs auf den Regeleditor
- Verbesserungen am Design-Editor
- Verbesserungen am Formulareditor
- Automatisches Testen von adaptiven Formularen
- Automatisches Testen von adaptiven Formularen
- Integrieren von LDAP mit AEM Forms
- Verwenden des Dienstbenutzenden in AEM Forms
- Tagging und Speichern von DoR bei der Übermittlung adaptiver Formulare
- Auffüllen der Tabelle mit den Ergebnissen aus dem Aufruf des Formulardatenmodell-Dienstes
- Erfassen von Workflow-Kommentaren
- Speichern gesendeter Formulardaten in DB
- Formularanlage in DB einfügen
- Datenquellkonfiguration ändern
- Überschreiben der Eigenschaften des Formulardatenmodells
- Formulardatenmodelldienst in AEM 6.4 Workflow
- Umgang mit Fehlermeldungen im Schritt „Formulardatenmodell-Service“
- Formulardatenmodelldienst in AEM 6.5.1 Workflow
- Formulardatenmodelle ohne Datenquelle
- Berechnetes Formulardatenmodellelement
- Einrichten von JDBC-Datenquellen in AEM Forms
- JDBC-basiertes Formulardatenmodell
- Erstellen von Verknüpfungen zwischen zwei Entitäten im Formulardatenmodell
- Verwenden des Aufrufdienstes des Formulardatenmodells im Regeleditor
- Posten von Binärdaten an AEM DAM mithilfe des Formulardatenmodells
- Erstellen von wiederverwendbaren Workflow-Modellen
- Benutzerdefinierter Prozessschritt AEM-Workflow
- Vorausfüllen von HTML5 Formularen
- Formulardatenmodell mit Salesforce
- Dynamisches Hinzufügen von Elementen zur Auswahlkomponente
- Ausfüllen eines PDF-Formulars mit ChatBot
- Auf Kernkomponenten basierende Formulare
- Auswählen und Zusammenführen von DAM-Ordnerinhalt
- Vorausfüllen des adaptiven Formulars mithilfe des Formulardatenmodells
- Tipps und Tricks zur Benutzeroberfläche
- Anpassen des Posteingangs
- E-Mail-Formularanhänge
- Vorausfüllen von Formularen mit Daten und Anhängen
- Speichern und Abrufen adaptiver Formulare
- 1 – Einführung
- 2 – Konfigurieren einer Datenquelle
- 3 – Speichern von Formularanhängen
- 4 – Speichern von Formulardaten
- 5 – Erstellen eines Servlets
- 6 – Rendern eines Formulars mit gespeicherten Daten
- 7 – Erstellen einer Client-Bibliothek
- 8 – Integrieren mit dem OTP-Dienst
- 9 – Erstellen des Hauptformulars
- 10 – Erstellen des MyAccount-Formulars
- 11 – Bereitstellen des Beispiels
- Importieren von Daten aus der PDF-Datei
- Exportieren gesendeter Daten im CSV-Format
- HTML5-Formulare
- AEM Forms und Acrobat Sign
- Einführung
- Einrichten von SSL
- Erstellen einer Acrobat Sign-API-Anwendung
- Erstellen einer Acrobat Sign-Cloud-Konfiguration
- Erstellen eines Workflows, um Dokument zur Unterschrift zu senden
- Erstellen und Konfigurieren eines adaptiven Formulars
- Konfigurieren eines adaptiven Formulars für einzelne Unterzeichnende
- Konfigurieren eines adaptiven Formulars für zwei Unterzeichnende
- Konfigurieren des Dienstes für die automatische Formularkonversion
- Konvertieren eines PDF-Formulars in ein adaptives Formular
- Konfigurieren eines konvertierten adaptiven Formulars
- Verwenden von XDP-Vorlagen mit Acrobat Sign
- Verwenden von Hilfsmethoden von Acrobat Sign
- Signieren mehrerer Formulare
- 1 – Einführung
- 2 – Konfigurieren einer Datenquelle
- 3 – Erstellen eines OSGi-Dienstes
- 4 – Erstellen eines Haupt-Workflows
- 5 – Aktualisieren des Signaturstatus-Workflows
- 6 – Anpassen der Zusammenfassungskomponente
- 7 – Erstellen einer Client-Bibliothek
- 8 – Erstellen einer Formularvorlage
- 9 – Erstellen des ersten Formulars
- 10 – Erstellen von zu signierenden Formularen
- 11 – Testen der Lösung
- Benutzerdefinierte Workflow-Schritte
- Benutzerdefinierte Workflow-Komponente
- Variablen im AEM-Workflow
- Überprüfen der Formulardaten
- Speichern und Abrufen von Formulardaten in MySQL DB
- Auslösen eines AEM-Workflows bei der Übermittlung eines PDF-Formulars
- Auslösen eines AEM-Workflows bei der Übermittlung eines mobilen Formulars
- Abfragen von Formularübermittlungen
- Auflisten benutzerdefinierter Asset-Typen im Formularportal
- AEM Forms mit Marketo
- AEM Forms mit Adobe Campaign Standard
- Begrüßungs-Kit
- Headless-Forms-API
- React-App mit Forms und Acrobat Sign
- Document Services
- Arten von PDF-Formularen
- Einbetten von PDFs in adaptive Formulare
- PDFs in Karussellkomponenten
- Verwenden des Assembler-Dienstes in AEM Forms
- XDP-Zuordnung mit Assembler-Dienst
- Verwenden vom überwachten Ordner in AEM Forms
- Verwenden des Barcode-Dienstes in AEM Forms
- Verwenden des PDFG-Dienstes in AEM Forms
- Verschlüsseln einer PDF mit einem Berechtigungskennwort
- Verwenden von Output und Forms Service in AEM Forms
- Verwenden von xdp-Fragmenten im Output-Dienst
- ECMA-Skript zum Generieren von PDF-Dateien mit Fragmenten
- Erstellen mehrerer PDFs aus einer Datendatei
- Generieren eines PDFs bei Übermittlung mobiler Formulare
- Generieren einer PDF bei auf Kernkomponente basierenden Formularübermittlungen
- Generieren eines interaktiven PDFs aus mobilen Formularen
- Generieren eines interaktiven DoR aus adaptiven Formularen
- Konfigurieren von Reader Extensions-Berechtigungen
- Anwenden von Verwendungsrechten auf PDF bei XDP-Wiedergabe
- Anwenden von Nutzungsrechten auf hochgeladene PDF-Dateien
- Zertifizieren von Dokumenten
- Zusammenführen von Formularanlagen
- Nützliche Dienstprogrammdienste
- Forms Designer
- AEM Forms Workbench
- Interaktive Kommunikationen für Print-Kanal
- 1 – Einführung
- 2 – Einrichten von Tomcat
- 3 – Erstellen einer Datenquelle
- 4 – Erstellen eines Formulardatenmodells
- 5 – Erstellen eines XDP-Layouts mit Forms Designer
- 6 – Erstellen eines Dokumentfragments
- 7 – Erstellen eines Druckkanaldokuments
- 8 – Hinzufügen von Inhalten zu Zielbereichen
- 9 – Konfigurieren eines Liniendiagramms
- 10 – Hinzufügen einer Tabelle zum Druckkanal
- 11 – Verwenden eines überwachten Ordners zum Generieren von Dokumenten
- 12 – Öffnen der Agent-Benutzeroberfläche bei der Formularübermittlung
- Speichern und Abrufen von Briefentwürfen
- Interaktive Kommunikationen
- Verwenden der Batch-API
- Diagramme für mehrere Serien
- Generieren von Druckkanaldokumenten aus gesendeten Daten
- Verwenden von Reducer-Funktionen
- Zwei-Spalten-Layout in Druckkanaldokumenten
- Verwenden der Tabellenkomponente in einem Druckkanaldokument von AEM Forms
- Generieren eines interaktiven Kommunikationsdokuments für den Druckkanal unter Verwendung von überwachten Ordnern
- Anpassen des Texteditors
- Interaktive Kommunikationen für Web-Kanal
- 1 – Einführung
- 2 – Einrichten von Tomcat
- 3 – Erstellen einer Datenquelle
- 4 – Erstellen eines Formulardatenmodells
- 5 – Erstellen einer Web-Kanal-Dokumentvorlage
- 6 – Erstellen eines Dokumentfragments
- 7 – Erstellen eines Dokuments zur interaktiven Kommunikation
- 8 – Hinzufügen von Text und Bildern
- 9 – Konfigurieren eines Liniendiagramms
- 10 – Konfigurieren einer Tabelle
- 11 – Konfigurieren eines Spaltendiagramms
- 12 – Konfigurieren eines Tortendiagramms
- 13 – Bereitstellung des Web-Kanal-Dokuments
- E-Mail-Versand des Web-Kanaldokuments
- Fehlerbehebung
- Dokumentendienste: Schritte zur Behebung von DDX-bezogenen Problemen
- Dokumentendienste: Schritte zur Fehlerbehebung bei PDFA-Konversionsproblemen
- Dokumentendienste: Debugging von Schriftartenproblemen für Forms und Output Service
- Dokumentendienste: Einbetten von Schriftarten für Forms und Output Service
- Dokumentendienste: Aktivieren der Leistungsprotokollierung zum Debuggen von Forms und Output Service
- Dokumentendienste: Erhöhen des Aries-Transaktions-Timeouts für die Konversion großer Dateien
- Dokumentendienste: Ausführen von Belastungstests mit FormsIVS und OutputIVS
- Dokumentendienste: Aktualisieren von benutzerdefinierten XDPs und Datendateien in FormsIVS und OutputIVS
- Dokumentendienste: Schritte zum Aktivieren der ausführlichen ORB-Verfolgung
- Dokumentendienste: Schritte zum Anpassen der BMC-Poolgröße für XMLFormService Teil 1
- Dokumentendienste: Schritte zum Anpassen der BMC-Poolgröße für XMLFormService Teil 2
- Dokumentendienste: Schritte zum Anpassen von Parametern auf der JMX-Konsole
- Aktivieren der Zusammenführung großer XML-Datendateien mit einer Vorlage
- PDFG: Ändern der Transaktions-Timeouts in PDFG
- PDFG: Aktualisieren des CORBA-Timeouts in PDFG
- PDFG: Aktualisieren der Timeouts in PDFG
- PDFG: Schritte zum Hinzufügen von PDFG-Benutzenden auf Windows Server 2016
- PDFG: Schritte zum Überprüfen und Installieren von 32-Bit-Bibliotheken und deren Abhängigkeiten
- PDFG: Schritte zum Überprüfen der Ordnerberechtigungen auf Windows Server 2016
- PDFG: Schritte zum Aktivieren von Strace auf Unix
- PDFG: Schritte zum Installieren erforderlicher verteilbarer 32-Bit-Dateien von Microsoft Visual C++
- PDFG: Schritte zum Ausführen und Interpretieren der Ausgabe des Systembereitschafts-Tools
- PDFG: Schritte zur Behebung Akrobat-spezifischer Probleme
- PDFG: Schritte zur Fehlerbehebung bei HtmltoPDF-Problemen unter Windows
- PDFG: Schritte zur Fehlerbehebung bei HtmltoPDF-spezifischen Problemen unter Unix (PhantomJS)
- PDFG: Schritte zur Fehlerbehebung bei HtmltoPDF-spezifischen Problemen bei Unix (WebKit-Konversion)
- PDFG: Schritte zur Fehlerbehebung bei der PDFG-Konversion für mehrere Benutzende unter Unix
- PDFG: Schritte zur Fehlerbehebung bei der PDFG-Konversion für mehrere Benutzende unter Windows
- PDFG: Schritte zur Fehlerbehebung bei OpenOffice-spezifischen Problemen unter Unix
- PDFG: Schritte zur Fehlerbehebung bei OpenOffice-spezifischen Problemen unter Windows
- Dokumentensicherheit: Anwenden von Richtlinien, die mit dem Dokumentensicherheitsmodul in Acrobat erstellt wurden
- User Management: Hinzufügen von Benutzenden oder Gruppen in AEM Forms für JEE
- User Management: Erhöhen des UM-Sitzungs-Timeouts
- Workbench: Verbinden von Workbench mit https
- Workbench: Erfassen von Workbench-Protokollen über das Hilfemenü
- Workbench: Aktivieren der Debug-Ausgabe für Workbench
- Workbench: Anpassen von Workbench-Speicherparametern
- Workbench: Anpassen der Leistungsparameter von Workbench
- Designer: Abhängigkeit von Designer auf C++ Redistributable
- Designer: Aktivieren der HTML-Vorschau
- Designer: Aktivieren der PDF-Vorschau
- Designer: Installieren von Designer-Patches
- JEE Foundation: Ändern des Werts der Entropie
- JEE Foundation: Ändern des Transaktions-Timeouts jedes Dienstes in AEM Forms für JEE
- JEE Foundation: Bereinigen von Prozessdatensätzen in der Job Manager-Tabelle
- JEE Foundation: Ausführen der Prozessbereinigung über die Befehlszeile
- JEE Foundation: Schritte beim manuellen Bootstrapping
- JEE Foundation: Schritte zum Erfassen von Debugging-Protokollen für mobile Formulare
- JEE Foundation: Schritte zum Abmildern von ForcedDisconnectException
- Allgemein: Hinzufügen von Verwaltungsbenutzenden für die JBoss Admin Console
- Allgemein: Erfassen von HAR-Protokollen
- Allgemein: Erfassen von Heap-Dumps einer JVM auf einem Unix-Server
- Allgemein: Erfassen von Heap-Dumps einer JVM auf einem Windows-Server
- Allgemein: Erfassen von Netzwerkprotokollen
- Allgemein: Erfassen von Thread-Dumps einer JVM auf einem Unix-Server
- Allgemein: Erfassen von Thread-Dumos einer JVM auf einem Windows-Server
- Allgemein: Erstellen eines selbstsignierten Zertifikats
- Allgemein: Durchführen eines Webservice-Aufrufs über das HTML5-Formular
- Allgemein: Schritte zum Aktivieren der Debug-Protokollierung für alle Klassen in OSGI für AEM Forms
- Allgemein: Schritte zum Aktivieren der Debug-Protokollierung für alle Klassen im JBOSS Application Server
- Allgemein: Schritte zum Aktivieren der Debug-Protokollierung für alle Klassen im Websphere Application Server
- Allgemein: Schritte zum Aktivieren von SSL für OSGi für AEM Forms
- Allgemein: Schritte zum Verschlüsseln des KeyStore-Kennworts für die Verwendung in lc_turnkey.xml
- Allgemein: Schritte zum Zurücksetzen des Standardkennworts für Benutzende in AEM Forms für JEE
- Allgemein: Schritte zum Zurücksetzen des Standardkennworts für Benutzende in AEM Forms auf OSGi
- Allgemein: Schritte zum Einrichten von Gemfire-Locators in einem Cluster und zum Ausführen der entsprechenden Konfiguration