Creazione di documenti PDF con dati XML inviati

Esempi ed esempi in questo documento sono solo per AEM Forms in ambiente JEE.

Creazione di documenti PDF con dati XML inviati

Per le applicazioni basate sul Web che consentono agli utenti di compilare moduli interattivi, i dati devono essere inviati nuovamente al server. Utilizzando il servizio Forms, è possibile recuperare i dati del modulo immessi dall’utente in un modulo interattivo. È quindi possibile passare i dati del modulo a un’altra operazione del servizio AEM Forms e creare un documento PDF utilizzando i dati.

NOTA

Prima di leggere questo contenuto, è consigliabile avere una conoscenza approfondita della gestione dei moduli inviati. Concetti come la relazione tra una struttura del modulo e i dati XML inviati sono descritti in Gestione di Forms inviati.

Considera il seguente flusso di lavoro che coinvolge tre servizi AEM Forms:

  • Un utente invia dati XML al servizio Forms da un'applicazione basata sul Web.
  • Il servizio Forms viene utilizzato per elaborare il modulo inviato ed estrarre i campi del modulo. I dati del modulo possono essere elaborati. Ad esempio, i dati possono essere inviati a un database aziendale.
  • I dati del modulo vengono inviati al servizio Output per creare un documento PDF non interattivo.
  • Il documento PDF non interattivo viene memorizzato in Content Services (obsoleto).

Il diagramma seguente fornisce una rappresentazione visiva di questo flusso di lavoro.

cd_cd_finsrv_architecture_xml_pdf1

Dopo l’invio del modulo dal browser Web del client, il documento PDF non interattivo viene memorizzato in Content Services (obsoleto). Nell'illustrazione seguente viene illustrato un documento PDF memorizzato in Content Services (obsoleto).

cd_cd_cs_gui

Riepilogo dei passaggi

Per creare un documento PDF non interattivo con dati XML inviati e archiviarlo nel documento PDF in Content Services (obsoleto), eseguire le operazioni seguenti:

  1. Includi file di progetto.
  2. Creazione di oggetti Forms, Output e Document Management.
  3. Recupera i dati del modulo utilizzando il servizio Forms.
  4. Creare un documento PDF non interattivo utilizzando il servizio Output.
  5. Archiviare il modulo PDF in Content Services (obsoleto) utilizzando il servizio Document Management.

Includi file di progetto

Includi i file necessari nel progetto di sviluppo. Se stai creando un'applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, assicurati di includere i file proxy.

Creazione di oggetti Forms, Output e Document Management

Prima di eseguire un’operazione API del servizio Forms a livello di programmazione, crea un oggetto API client Forms. Allo stesso modo, poiché questo flusso di lavoro richiama i servizi di Output e Document Management, crea sia un oggetto API client di output che un oggetto API client di Document Management.

Recupera i dati del modulo utilizzando il servizio Forms

Recupera i dati del modulo inviati al servizio Forms. Puoi elaborare i dati inviati per soddisfare le tue esigenze aziendali. Ad esempio, è possibile memorizzare i dati del modulo in un database aziendale. Tuttavia, per creare un documento PDF non interattivo, i dati del modulo vengono passati al servizio Output.

Creare un documento PDF non interattivo utilizzando il servizio Output.

Utilizzare il servizio Output per creare un documento PDF non interattivo basato su una struttura del modulo e sui dati del modulo XML. Nel flusso di lavoro, i dati del modulo vengono recuperati dal servizio Forms.

Archiviare il modulo PDF in Content Services (obsoleto) utilizzando il servizio Document Management

Utilizzare l'API del servizio di gestione dei documenti per memorizzare un documento PDF in Content Services (obsoleto).

Consulta anche

Inclusione dei file libreria Java di AEM Forms

Impostazione delle proprietà di connessione

Avvio rapido API di Forms Service

Creare un documento PDF con i dati XML inviati utilizzando l'API Java

Creare un documento PDF con i dati XML inviati utilizzando Forms, Output e Document Management API (Java):

  1. Includi file di progetto

    Includi file JAR client, come adobe-forms-client.jar, adobe-output-client.jar e adobe-contentservices-client.jar nel percorso classe del progetto Java.

  2. Creazione di oggetti Forms, Output e Document Management

    • Creare un oggetto ServiceClientFactory contenente le proprietà di connessione.
    • Creare un oggetto FormsServiceClient utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory.
    • Creare un oggetto OutputClient utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory.
    • Creare un oggetto DocumentManagementServiceClientImpl utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory.
  3. Recupera i dati del modulo utilizzando il servizio Forms

    • Richiama il metodo processFormSubmission dell'oggetto FormsServiceClient e passa i seguenti valori:

      • L'oggetto com.adobe.idp.Document che contiene i dati del modulo.
      • Valore stringa che specifica le variabili di ambiente, comprese tutte le intestazioni HTTP rilevanti. Specifica il tipo di contenuto da gestire specificando uno o più valori per la variabile di ambiente CONTENT_TYPE. Ad esempio, per gestire i dati XML, specificare il seguente valore di stringa per questo parametro: CONTENT_TYPE=text/xml.
      • Valore stringa che specifica il valore di intestazione HTTP_USER_AGENT, ad esempio Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322).
      • Un oggetto RenderOptionsSpec che memorizza le opzioni di esecuzione.

      Il metodo processFormSubmission restituisce un oggetto FormsResult contenente i risultati dell'invio del modulo.

    • Determinare se il servizio Forms ha completato l’elaborazione dei dati del modulo richiamando il metodo getAction dell’oggetto FormsResult. Se questo metodo restituisce il valore 0, i dati sono pronti per essere elaborati.

    • Recupera i dati del modulo creando un oggetto com.adobe.idp.Document richiamando il metodo FormsResult dell’oggetto getOutputContent. Questo oggetto contiene i dati del modulo che possono essere inviati al servizio Output.

    • Creare un oggetto java.io.InputStream richiamando il costruttore java.io.DataInputStream e passando l'oggetto com.adobe.idp.Document.

    • Creare un oggetto org.w3c.dom.DocumentBuilderFactory chiamando il metodo org.w3c.dom.DocumentBuilderFactory statico dell'oggetto newInstance.

    • Creare un oggetto org.w3c.dom.DocumentBuilder richiamando il metodo org.w3c.dom.DocumentBuilderFactory dell'oggetto newDocumentBuilder.

    • Creare un oggetto org.w3c.dom.Document richiamando il metodo org.w3c.dom.DocumentBuilder dell'oggetto parse e passando l'oggetto java.io.InputStream.

    • Recupera il valore di ogni nodo all'interno del documento XML. Un modo per eseguire questa attività consiste nel creare un metodo personalizzato che accetta due parametri: l'oggetto org.w3c.dom.Document e il nome del nodo di cui si desidera recuperare il valore. Questo metodo restituisce un valore stringa che rappresenta il valore del nodo. Nell'esempio di codice che segue questo processo, questo metodo personalizzato è denominato getNodeText. Viene mostrato il corpo di questo metodo.

  4. Creare un documento PDF non interattivo utilizzando il servizio Output.

    Creare un documento PDF richiamando il metodo generatePDFOutput dell'oggetto OutputClient e passando i seguenti valori:

    • Valore enum TransformationFormat. Per generare un documento PDF, specificare TransformationFormat.PDF.
    • Valore stringa che specifica il nome della struttura del modulo. Verificare che la struttura del modulo sia compatibile con i dati del modulo recuperati dal servizio Forms.
    • Valore stringa che specifica la directory principale del contenuto in cui si trova la struttura del modulo.
    • Un oggetto PDFOutputOptionsSpec contenente opzioni di esecuzione PDF.
    • Un oggetto RenderOptionsSpec che contiene opzioni di rendering in fase di esecuzione.
    • L'oggetto com.adobe.idp.Document che contiene l'origine dati XML contenente i dati da unire alla struttura del modulo. Assicurarsi che l'oggetto sia stato restituito dal metodo getOutputContent dell'oggetto FormsResult.
    • Il metodo generatePDFOutput restituisce un oggetto OutputResult contenente i risultati dell'operazione.
    • Recuperare il documento PDF non interattivo richiamando il metodo getGeneratedDoc dell'oggetto OutputResult. Questo metodo restituisce un'istanza com.adobe.idp.Document che rappresenta il documento PDF non interattivo.
  5. Archiviare il modulo PDF in Content Services (obsoleto) utilizzando il servizio Document Management

    Aggiungi il contenuto richiamando il metodo storeContent dell’oggetto DocumentManagementServiceClientImpl e passando i seguenti valori:

    • Valore stringa che specifica l'archivio in cui viene aggiunto il contenuto. L'archivio predefinito è SpacesStore. Questo valore è un parametro obbligatorio.
    • Valore stringa che specifica il percorso completo dello spazio in cui viene aggiunto il contenuto (ad esempio, /Company Home/Test Directory). Questo valore è un parametro obbligatorio.
    • Nome del nodo che rappresenta il nuovo contenuto (ad esempio, MortgageForm.pdf). Questo valore è un parametro obbligatorio.
    • Valore stringa che specifica il tipo di nodo. Per aggiungere nuovo contenuto, ad esempio un file PDF, specificare {https://www.alfresco.org/model/content/1.0}content. Questo valore è un parametro obbligatorio.
    • Un oggetto com.adobe.idp.Document che rappresenta il contenuto. Questo valore è un parametro obbligatorio.
    • Una stringa che specifica il valore di codifica (ad esempio, UTF-8). Questo valore è un parametro obbligatorio.
    • Un valore di enumerazione UpdateVersionType che specifica come gestire le informazioni sulla versione (ad esempio, UpdateVersionType.INCREMENT_MAJOR_VERSION per incrementare la versione del contenuto. ) Questo valore è un parametro obbligatorio.
    • Un'istanza java.util.List che specifica gli aspetti correlati al contenuto. Questo valore è un parametro facoltativo ed è possibile specificare null.
    • Un oggetto java.util.Map che memorizza gli attributi del contenuto.

    Il metodo storeContent restituisce un oggetto CRCResult che descrive il contenuto. Utilizzando un oggetto CRCResult, è possibile, ad esempio, ottenere il valore di identificatore univoco del contenuto. Per eseguire questa operazione, richiamare il metodo getNodeUuid dell'oggetto CRCResult.

Consulta anche

Inclusione dei file libreria Java di AEM Forms

Impostazione delle proprietà di connessione

In questa pagina