Rendering di Forms sul client

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

Rendering di Forms sul client

Potete ottimizzare la distribuzione del contenuto PDF e migliorare la capacità del servizio Forms di gestire il carico di rete utilizzando la funzionalità di rendering lato client di Acrobat o Adobe Reader. Questo processo è noto come rendering di un modulo sul client. Per eseguire il rendering di un modulo sul client, il dispositivo client (in genere un browser Web) deve utilizzare Acrobat 7.0 o Adobe Reader 7.0 o versione successiva.

Le modifiche apportate a un modulo derivanti dall'esecuzione di script sul lato server non si riflettono in un modulo di cui viene eseguito il rendering sul client, a meno che il sottomodulo principale non contenga l'attributo restoreState impostato su auto. Per ulteriori informazioni su questo attributo, vedere Forms Designer.

NOTA

Per ulteriori informazioni sul servizio Forms, vedere Guida di riferimento dei servizi per AEM Forms.

Riepilogo dei passaggi

Per eseguire il rendering di un modulo sul client, effettuare le seguenti operazioni:

  1. Includere i file di progetto.
  2. Creare un oggetto Forms Client API.
  3. Impostate le opzioni di esecuzione del rendering client.
  4. Eseguire il rendering di un modulo sul client.
  5. Scrivere il modulo nel browser Web del client.

Includi file di progetto

Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.

Creare un oggetto Forms Client API

Prima di eseguire un'operazione API client di Forms Service a livello di programmazione, è necessario creare un client di servizi Forms. Se utilizzate l'API Java, create un oggetto FormsServiceClient. Se utilizzate l'API del servizio Web di Forms, create un oggetto FormsService.

Impostazione delle opzioni di esecuzione del rendering client

È necessario impostare l'opzione di esecuzione del rendering client per eseguire il rendering di un modulo sul client impostando l'opzione RenderAtClient runtime su true. Questo determina la distribuzione del modulo al dispositivo client sul quale viene eseguito il rendering. Se RenderAtClient è auto (il valore predefinito), la struttura del modulo determina se eseguire il rendering del modulo sul computer client. La struttura del modulo deve essere una struttura del modulo con layout scorrevole.

Un'opzione opzionale di runtime che è possibile impostare è l'opzione SeedPDF. L'opzione SeedPDF combina il contenitore PDF (documento PDF di livello inferiore) con la struttura del modulo e i dati XML. Sia la struttura del modulo che i dati XML vengono inviati a Acrobat o Adobe Reader, dove viene eseguito il rendering del modulo. L'opzione SeedPDF può essere utilizzata quando il computer client non dispone di font utilizzati nel modulo, ad esempio quando un utente finale non dispone di una licenza per utilizzare un font concesso in licenza al proprietario del modulo.

Designer consente di creare un semplice file PDF dinamico da utilizzare come file PDF di base. Per eseguire questa operazione sono necessari i seguenti passaggi:

  1. Determinare se è necessario incorporare font nel file PDF di livello inferiore. Il file PDF di livello inferiore dovrà contenere i font aggiuntivi richiesti dal modulo di cui si sta eseguendo il rendering. Durante l'incorporazione di font nel file PDF di base, assicurarsi di non violare alcun contratto di licenza per i font. In Designer è possibile determinare se è possibile incorporare legalmente i font. In caso di font non incorporati nel modulo, in Designer viene visualizzato un messaggio in cui sono elencati i font che non è possibile incorporare. Questo messaggio non viene visualizzato in Designer per i documenti PDF statici.
  2. Se si sta creando il file PDF di livello inferiore in Designer, è consigliabile aggiungere almeno un campo di testo contenente un messaggio. Il messaggio deve essere indirizzato agli utenti di versioni precedenti di Adobe Reader in cui si dichiara che per visualizzare il documento è necessario Acrobat 7.0 o versioni successive o Adobe Reader 7.0 o versioni successive.
  3. Salvare il file PDF di livello inferiore come file PDF dinamico con l’estensione del nome del file PDF.
NOTA

Per eseguire il rendering di un modulo sul client, non è necessario definire l'opzione di esecuzione PDF di livello inferiore. Se non si specifica un PDF di livello inferiore, il servizio Forms crea un pdf contenitore che non conterrà oggetti COS ma conterrà un wrapper PDF con il contenuto XDP effettivo incorporato al suo interno. I passaggi descritti in questa sezione non impostano l'opzione per l'esecuzione dei PDF iniziali. Per informazioni sugli oggetti COS, vedere la guida di riferimento Adobe PDF.

Eseguire il rendering di un modulo sul client

Per eseguire il rendering di un modulo sul client, è necessario assicurarsi che le opzioni di esecuzione del rendering del client siano incluse nella logica dell'applicazione per eseguire il rendering di un modulo.

Scrivere il flusso di dati del modulo nel browser Web del client

Il servizio Forms crea un flusso di dati del modulo che è necessario scrivere nel browser Web del client. Una volta scritto nel browser Web del client, il modulo viene rappresentato da Acrobat 7.0 o Adobe Reader 7.0 o versione successiva ed è visibile all'utente.

Consulta anche

Eseguire il rendering di un modulo sul client utilizzando l'API Java

Eseguire il rendering di un modulo sul client utilizzando l'API del servizio Web

Inclusione file libreria Java AEM Forms

Impostazione delle proprietà di connessione

Avvio rapido di Forms Service API

Invio di documenti al servizio Forms

Creazione di applicazioni Web per il rendering di Forms

Eseguire il rendering di un modulo sul client utilizzando l'API Java

Eseguire il rendering di un modulo sul client utilizzando l'API Forms (Java):

  1. Includi file di progetto

    Includete file JAR client, ad esempio adobe-forms-client.jar, nel percorso di classe del progetto Java.

  2. Creare un oggetto Forms Client API

    • Creare un oggetto ServiceClientFactory che contiene le proprietà di connessione.
    • Creare un oggetto FormsServiceClient utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory.
  3. Impostazione delle opzioni di esecuzione del rendering client

    • Creare un oggetto PDFFormRenderSpec utilizzando il relativo costruttore.
    • Impostare l'opzione RenderAtClient runtime richiamando il metodo PDFFormRenderSpec dell'oggetto setRenderAtClient e passando il valore enum RenderAtClient.Yes.
  4. Eseguire il rendering di un modulo sul client

    Richiamare il metodo FormsServiceClient dell'oggetto renderPDFForm e trasmettere i seguenti valori:

    • Una stringa che specifica il nome della struttura del modulo, inclusa l'estensione del nome file. Se si fa riferimento a una struttura del modulo che fa parte di un'applicazione AEM Forms , è necessario specificare il percorso completo, ad esempio Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • Un oggetto com.adobe.idp.Document che contiene i dati da unire al modulo. Se non si desidera unire i dati, passare un oggetto com.adobe.idp.Document vuoto.
    • Un oggetto PDFFormRenderSpec che memorizza le opzioni di esecuzione necessarie per eseguire il rendering di un modulo sul client.
    • Un oggetto URLSpec che contiene valori URI richiesti dal servizio Forms per eseguire il rendering di un modulo.
    • Un oggetto java.util.HashMap che memorizza gli allegati. Si tratta di un parametro facoltativo ed è possibile specificare null se non si desidera allegare file al modulo.

    Il metodo renderPDFForm restituisce un oggetto FormsResult contenente un flusso di dati del modulo che deve essere scritto nel browser Web del client.

  5. Scrivere il flusso di dati del modulo nel browser Web del client

    • Creare un oggetto com.adobe.idp.Document richiamando il metodo FormsResult object ‘s getOutputContent.
    • Ottenere il tipo di contenuto dell'oggetto com.adobe.idp.Document richiamandone il metodo getContentType.
    • Impostare il tipo di contenuto dell'oggetto javax.servlet.http.HttpServletResponse richiamandone il metodo setContentType e passando il tipo di contenuto dell'oggetto com.adobe.idp.Document.
    • Creare un oggetto javax.servlet.ServletOutputStream utilizzato per scrivere il flusso di dati del modulo nel browser Web del client richiamando il metodo javax.servlet.http.HttpServletResponse dell'oggetto getOutputStream.
    • Creare un oggetto java.io.InputStream richiamando il metodo com.adobe.idp.Document dell'oggetto getInputStream.
    • Creare un array di byte e compilarlo con il flusso di dati del modulo richiamando il metodo InputStream dell'oggetto read e passando l'array di byte come argomento.
    • Richiamare il metodo javax.servlet.ServletOutputStream dell'oggetto write per inviare il flusso di dati del modulo al browser Web del client. Passate l'array di byte al metodo write.

Consulta anche

Avvio rapido (modalità SOAP): Rendering di un modulo sul client mediante l'API Java

Inclusione file libreria Java AEM Forms

Impostazione delle proprietà di connessione

Eseguire il rendering di un modulo sul client utilizzando l'API del servizio Web

Eseguire il rendering di un modulo sul client utilizzando l'API di Forms (servizio Web):

  1. Includi file di progetto

    • Creare classi proxy Java che utilizzano il servizio WSDL di Forms.
    • Includete le classi proxy Java nel percorso della classe.
  2. Creare un oggetto Forms Client API

    Creare un oggetto FormsService e impostare i valori di autenticazione.

  3. Impostazione delle opzioni di esecuzione del rendering client

    • Creare un oggetto PDFFormRenderSpec utilizzando il relativo costruttore.
    • Impostare l'opzione di esecuzione RenderAtClient richiamando il metodo PDFFormRenderSpec dell'oggetto setRenderAtClient e passando il valore della stringa RenderAtClient.Yes.
  4. Eseguire il rendering di un modulo sul client

    Richiamare il metodo FormsService dell'oggetto renderPDFForm e trasmettere i seguenti valori:

    • Una stringa che specifica il nome della struttura del modulo, inclusa l'estensione del nome file. Se si fa riferimento a una struttura del modulo che fa parte di un'applicazione Forms, è necessario specificare il percorso completo, ad esempio Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • Un oggetto BLOB che contiene i dati da unire al modulo. Se non si desidera unire i dati, passare null. (Vedere Precompilazione di Forms con layout scorrevoli.)
    • Un oggetto PDFFormRenderSpec che memorizza le opzioni di esecuzione necessarie per eseguire il rendering di un modulo sul client.
    • Un oggetto URLSpec che contiene valori URI richiesti dal servizio Forms.
    • Un oggetto java.util.HashMap che memorizza gli allegati. Si tratta di un parametro facoltativo ed è possibile specificare null se non si desidera allegare file al modulo.
    • Un oggetto com.adobe.idp.services.holders.BLOBHolder vuoto compilato dal metodo. Questo parametro viene utilizzato per memorizzare il modulo PDF di cui è stato effettuato il rendering.
    • Un oggetto javax.xml.rpc.holders.LongHolder vuoto compilato dal metodo. (Questo argomento memorizza il numero di pagine nel modulo).
    • Un oggetto javax.xml.rpc.holders.StringHolder vuoto compilato dal metodo. (Questo argomento memorizza il valore delle impostazioni internazionali).
    • Un oggetto com.adobe.idp.services.holders.FormsResultHolder vuoto che conterrà i risultati dell'operazione.

    Il metodo renderPDFForm compila l'oggetto com.adobe.idp.services.holders.FormsResultHolder passato come ultimo valore argomento con un flusso di dati del modulo che deve essere scritto nel browser Web del client.

  5. Scrivere il flusso di dati del modulo nel browser Web del client

    • Creare un oggetto FormResult ottenendo il valore del membro di dati com.adobe.idp.services.holders.FormsResultHolder dell'oggetto value.
    • Creare un oggetto BLOB contenente dati del modulo richiamando il metodo FormsResult dell'oggetto getOutputContent.
    • Ottenere il tipo di contenuto dell'oggetto BLOB richiamandone il metodo getContentType.
    • Impostare il tipo di contenuto dell'oggetto javax.servlet.http.HttpServletResponse richiamandone il metodo setContentType e passando il tipo di contenuto dell'oggetto BLOB.
    • Creare un oggetto javax.servlet.ServletOutputStream utilizzato per scrivere il flusso di dati del modulo nel browser Web del client richiamando il metodo javax.servlet.http.HttpServletResponse dell'oggetto getOutputStream.
    • Creare un array di byte e compilarlo richiamando il metodo BLOB dell'oggetto getBinaryData. Questa attività assegna il contenuto dell'oggetto FormsResult all'array di byte.
    • Richiamare il metodo javax.servlet.http.HttpServletResponse dell'oggetto write per inviare il flusso di dati del modulo al browser Web del client. Passate l'array di byte al metodo write.

Consulta anche

Rendering di Forms sul client

Richiamo AEM Forms con codifica Base64

In questa pagina