La precompilazione dei moduli consente di visualizzare i dati agli utenti all'interno di un modulo di cui è stato effettuato il rendering. Ad esempio, supponiamo che un utente acceda a un sito Web con un nome utente e una password. Se l'autenticazione ha esito positivo, l'applicazione client esegue una query a un database per ottenere informazioni sugli utenti. I dati vengono uniti nel modulo, quindi viene eseguito il rendering del modulo per l'utente. Di conseguenza, l'utente può visualizzare dati personalizzati all'interno del modulo.
La precompilazione di un modulo presenta i seguenti vantaggi:
È possibile precompilare un modulo con le due origini dati XML seguenti:
Per ogni campo del modulo che si desidera precompilare è necessario che esista un elemento XML. Il nome dell'elemento XML deve corrispondere al nome del campo. Un elemento XML viene ignorato se non corrisponde a un campo modulo o se il nome dell'elemento XML non corrisponde al nome del campo. Non è necessario stabilire una corrispondenza con l'ordine in cui vengono visualizzati gli elementi XML, purché siano specificati tutti gli elementi XML.
Quando si precompila un modulo che contiene già dei dati, è necessario specificare i dati già visualizzati nell'origine dati XML. Si supponga che un modulo contenente 10 campi contenga dati in quattro campi. Quindi, si supponga di voler precompilare i sei campi rimanenti. In questa situazione, è necessario specificare 10 elementi XML nell'origine dati XML utilizzata per precompilare il modulo. Se specificate solo sei elementi, i quattro campi originali sono vuoti.
Ad esempio, è possibile precompilare un modulo, ad esempio il modulo di conferma di esempio. (Vedere "Modulo di conferma" in Rendering di PDF forms interattivi.)
Per precompilare il modulo di conferma di esempio, è necessario creare un'origine dati XML contenente tre elementi XML che corrispondono ai tre campi del modulo. Questo modulo contiene i tre campi seguenti: FirstName
, LastName
e Amount
. Il primo passaggio consiste nel creare un'origine dati XML contenente elementi XML che corrispondono ai campi situati nella struttura del modulo. Il passaggio successivo consiste nell'assegnare valori di dati agli elementi XML, come illustrato nel seguente codice XML.
<Untitled>
<FirstName>Jerry</FirstName>
<LastName>Johnson</LastName>
<Amount>250000</Amount>
</Untitled>
Dopo aver precompilato il modulo di conferma con questa origine dati XML ed eseguito il rendering del modulo, vengono visualizzati i valori dei dati assegnati agli elementi XML, come illustrato nel diagramma seguente.
Forms con layout scorrevoli è utile per visualizzare agli utenti una quantità indeterminata di dati. Poiché il layout del modulo si adatta automaticamente alla quantità di dati che vengono uniti, non è necessario predeterminare un layout fisso o un numero di pagine per il modulo, come è necessario fare con un modulo con layout fisso.
Un modulo viene in genere compilato con i dati ottenuti durante l'esecuzione. Di conseguenza, è possibile precompilare un modulo creando un'origine dati XML in memoria e inserendo i dati direttamente nell'origine dati XML in memoria.
Considerate un'applicazione basata sul Web, ad esempio uno store online. Al termine dell'acquisto di un acquirente online, tutti gli elementi acquistati vengono inseriti in un'origine dati XML in memoria utilizzata per precompilare un modulo. Il diagramma seguente mostra questo processo, illustrato nella tabella che segue il diagramma.
La tabella seguente descrive i passaggi descritti in questo diagramma.
Incremento |
Descrizione |
---|---|
1 |
Un utente acquista elementi da uno store online basato su Web. |
2 |
Al termine dell'acquisto degli elementi e dopo aver fatto clic sul pulsante Invia, viene creata un'origine dati XML in memoria. Gli elementi acquistati e le informazioni utente vengono inseriti nell'origine dati XML in memoria. |
3 |
L'origine dati XML viene utilizzata per precompilare un modulo di ordine di acquisto (un esempio di questo modulo è illustrato nella tabella seguente). |
4 |
Il modulo di ordine di acquisto viene rappresentato nel browser Web del client. |
Nel diagramma seguente è riportato un esempio di modulo di ordine di acquisto. Le informazioni contenute nella tabella possono adattarsi al numero di record presenti nei dati XML.
Un modulo può essere precompilato con dati provenienti da altre origini, ad esempio da un database aziendale o da applicazioni esterne.
Forms con layout scorrevole si basa sulle strutture del modulo create in Designer. Una struttura del modulo specifica un insieme di regole di layout, presentazione e acquisizione dei dati, compreso il calcolo dei valori in base all'input dell'utente. Le regole vengono applicate quando i dati vengono immessi in un modulo. I campi aggiunti a un modulo sono sottomoduli che si trovano all'interno della struttura del modulo. Ad esempio, nel modulo dell'ordine di acquisto visualizzato nel diagramma precedente, ogni riga è un sottomodulo. Per informazioni sulla creazione di una struttura del modulo contenente sottomoduli, vedere Creazione di un modulo di ordine di acquisto con layout scorrevole.
Un'origine dati XML viene utilizzata per precompilare i moduli con layout fissi e layout scorrevoli. Tuttavia, la differenza sta nel fatto che un'origine dati XML che precompila un modulo con layout scorrevole contiene elementi XML ripetibili utilizzati per precompilare i sottomoduli che vengono ripetuti all'interno del modulo. Questi elementi XML ripetuti sono denominati sottogruppi di dati.
Un'origine dati XML utilizzata per precompilare il modulo di ordine di acquisto visualizzato nel diagramma precedente contiene quattro sottogruppi di dati ripetuti. Ciascun sottogruppo di dati corrisponde a un elemento acquistato. Gli articoli acquistati sono un monitor, una lampada da tavolo, un telefono e una rubrica.
La seguente origine dati XML viene utilizzata per precompilare il modulo di ordine di acquisto.
<header>
<!-- XML elements used to prepopulate non-repeating fields such as address
<!and city
<txtPONum>8745236985</txtPONum>
<dtmDate>2004-02-08</dtmDate>
<txtOrderedByCompanyName>Any Company Name</txtOrderedByCompanyName>
<txtOrderedByAddress>555, Any Blvd.</txtOrderedByAddress>
<txtOrderedByCity>Any City</txtOrderedByCity>
<txtOrderedByStateProv>ST</txtOrderedByStateProv>
<txtOrderedByZipCode>12345</txtOrderedByZipCode>
<txtOrderedByCountry>Any Country</txtOrderedByCountry>
<txtOrderedByPhone>(123) 456-7890</txtOrderedByPhone>
<txtOrderedByFax>(123) 456-7899</txtOrderedByFax>
<txtOrderedByContactName>Contact Name</txtOrderedByContactName>
<txtDeliverToCompanyName>Any Company Name</txtDeliverToCompanyName>
<txtDeliverToAddress>7895, Any Street</txtDeliverToAddress>
<txtDeliverToCity>Any City</txtDeliverToCity>
<txtDeliverToStateProv>ST</txtDeliverToStateProv>
<txtDeliverToZipCode>12346</txtDeliverToZipCode>
<txtDeliverToCountry>Any Country</txtDeliverToCountry>
<txtDeliverToPhone>(123) 456-7891</txtDeliverToPhone>
<txtDeliverToFax>(123) 456-7899</txtDeliverToFax>
<txtDeliverToContactName>Contact Name</txtDeliverToContactName>
</header>
<detail>
<!-- A data subgroup that contains information about the monitor>
<txtPartNum>00010-100</txtPartNum>
<txtDescription>Monitor</txtDescription>
<numQty>1</numQty>
<numUnitPrice>350.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the desk lamp>
<txtPartNum>00010-200</txtPartNum>
<txtDescription>Desk lamps</txtDescription>
<numQty>3</numQty>
<numUnitPrice>55.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the Phone>
<txtPartNum>00025-275</txtPartNum>
<txtDescription>Phone</txtDescription>
<numQty>5</numQty>
<numUnitPrice>85.00</numUnitPrice>
</detail>
<detail>
<!-- A data subgroup that contains information about the address book>
<txtPartNum>00300-896</txtPartNum>
<txtDescription>Address book</txtDescription>
<numQty>2</numQty>
<numUnitPrice>15.00</numUnitPrice>
</detail>
Tenere presente che ciascun sottogruppo di dati contiene quattro elementi XML che corrispondono alle seguenti informazioni:
Il nome dell'elemento XML padre di un sottogruppo di dati deve corrispondere al nome del sottomodulo che si trova nella struttura del modulo. Ad esempio, nel diagramma precedente, il nome dell'elemento XML principale del sottogruppo di dati è detail
. Questo corrisponde al nome del sottomodulo che si trova nella struttura del modulo su cui si basa il modulo di ordine di acquisto. Se il nome dell'elemento XML padre del sottogruppo di dati e il sottomodulo non corrispondono, il modulo lato server non viene precompilato.
Ciascun sottogruppo di dati deve contenere elementi XML che corrispondono ai nomi dei campi nel sottomodulo. Il sottomodulo detail
nella struttura del modulo contiene i campi seguenti:
Se si tenta di precompilare un modulo con un'origine dati che contiene elementi XML ripetuti e si imposta l'opzione RenderAtClient
su No
, nel modulo viene unito solo il primo record di dati. Per garantire che tutti i record di dati siano uniti nel modulo, impostare RenderAtClient
su Yes
. Per informazioni sull'opzione RenderAtClient
, vedere Rendering di Forms in Client.
Per ulteriori informazioni sul servizio Forms, vedere Guida di riferimento dei servizi per AEM Forms.
Per precompilare un modulo con un layout scorrevole, eseguire le operazioni seguenti:
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.
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.
Creazione di un'origine dati XML in memoria
È possibile utilizzare le classi org.w3c.dom
per creare un'origine dati XML in memoria per precompilare un modulo con un layout scorrevole. È necessario inserire i dati in un'origine dati XML conforme al modulo. Per informazioni sulla relazione tra un modulo con layout scorrevole e l'origine dati XML, vedere Informazioni sui sottogruppi di dati.
Conversione dell'origine dati XML
Un'origine dati XML in memoria creata utilizzando le classi org.w3c.dom
può essere convertita in un oggetto com.adobe.idp.Document
prima di poter essere utilizzata per precompilare il modulo. Un'origine dati XML in memoria può essere convertita utilizzando le classi di trasformazione Java XML.
Se si utilizza il WSDL del servizio Forms per precompilare un modulo, è necessario convertire un oggetto org.w3c.dom.Document
in un oggetto BLOB
.
Eseguire il rendering di un modulo precompilato
Il rendering di un modulo precompilato è simile a quello di un altro. L'unica differenza consiste nell'utilizzare l'oggetto com.adobe.idp.Document
che contiene l'origine dati XML per precompilare il modulo.
Consulta anche
Inclusione file libreria Java AEM Forms
Impostazione delle proprietà di connessione
Avvio rapido di Forms Service API
Rendering di PDF forms interattivi
Creazione di applicazioni Web per il rendering di Forms
Per precompilare un modulo con un layout scorrevole utilizzando l'API di Forms (Java), effettuare le seguenti operazioni:
Includi file di progetto
Includete file JAR client, ad esempio adobe-forms-client.jar, nel percorso di classe del progetto Java. Per informazioni sulla posizione di questi file, vedere Inclusione file libreria Java AEM Forms.
Creazione di un'origine dati XML in memoria
Creare un oggetto Java DocumentBuilderFactory
chiamando il metodo DocumentBuilderFactory
class newInstance
.
Creare un oggetto Java DocumentBuilder
chiamando il metodo DocumentBuilderFactory
dell'oggetto newDocumentBuilder
.
Chiamare il metodo DocumentBuilder
dell'oggetto newDocument
per creare un'istanza di un oggetto org.w3c.dom.Document
.
Creare l'elemento principale dell'origine dati XML richiamando il metodo org.w3c.dom.Document
dell'oggetto createElement
. Viene creato un oggetto Element
che rappresenta l'elemento principale. Passate al metodo createElement
un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, aggiungere l'elemento principale al documento chiamando il metodo appendChild
dell'oggetto Document
e passare l'oggetto dell'elemento principale come argomento. Le seguenti righe di codice mostrano la logica di questa applicazione:
Element root = (Element)document.createElement("transaction"); document.appendChild(root);
Creare l'elemento header dell'origine dati XML chiamando il metodo Document
dell'oggetto createElement
. Passate al metodo createElement
un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, aggiungere l'elemento header all'elemento root chiamando il metodo appendChild
dell'oggetto root
e passare l'oggetto header come argomento. Gli elementi XML che vengono aggiunti all'elemento header corrispondono alla parte statica del modulo. Le seguenti righe di codice mostrano questa logica di applicazione:
Element header = (Element)document.createElement("header"); root.appendChild(header);
Create un elemento secondario che appartiene all'elemento header chiamando il metodo createElement
dell'oggetto Document
e passate un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, impostare un valore per l'elemento secondario chiamandone il metodo appendChild
e passare il metodo Document
dell'oggetto createTextNode
come argomento. Specificate un valore di stringa da visualizzare come valore dell'elemento secondario. Infine, aggiungete l'elemento secondario all'elemento header chiamando il metodo dell'elemento header appendChild
e passate l'oggetto dell'elemento secondario come argomento. Le seguenti righe di codice mostrano questa logica di applicazione:
Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
Aggiungere tutti gli elementi rimanenti all'elemento header ripetendo l'ultimo passaggio secondario per ciascun campo visualizzato nella parte statica del modulo (nel diagramma dell'origine dati XML, questi campi sono mostrati nella sezione A. (Vedere Informazioni sui sottogruppi di dati.)
Creare l'elemento dettaglio dell'origine dati XML chiamando il metodo Document
dell'oggetto createElement
. Passate al metodo createElement
un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, aggiungere l'elemento dettaglio all'elemento principale chiamando il metodo appendChild
dell'oggetto root
e passare l'oggetto dell'elemento dettaglio come argomento. Gli elementi XML che vengono aggiunti all'elemento dettaglio corrispondono alla parte dinamica del modulo. Le seguenti righe di codice mostrano questa logica di applicazione:
Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
Create un elemento secondario che appartiene all'elemento dettaglio chiamando il metodo createElement
dell'oggetto Document
e passate un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, impostare un valore per l'elemento secondario chiamandone il metodo appendChild
e passare il metodo Document
dell'oggetto createTextNode
come argomento. Specificate un valore di stringa da visualizzare come valore dell'elemento secondario. Infine, aggiungete l'elemento secondario all'elemento dettaglio chiamando il metodo dell'elemento dettaglio appendChild
e passate l'oggetto dell'elemento secondario come argomento. Le seguenti righe di codice mostrano questa logica di applicazione:
Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
Ripetere l'ultimo passaggio secondario affinché tutti gli elementi XML vengano aggiunti all'elemento dettaglio. Per creare correttamente l'origine dati XML utilizzata per compilare il modulo di ordine di acquisto, è necessario aggiungere i seguenti elementi XML all'elemento dettaglio: txtDescription
, numQty
e numUnitPrice
.
Ripetere gli ultimi due passaggi secondari per tutti gli elementi dati utilizzati per precompilare il modulo.
Conversione dell'origine dati XML
javax.xml.transform.Transformer
richiamando il metodo statico javax.xml.transform.Transformer
dell'oggetto newInstance
.Transformer
richiamando il metodo TransformerFactory
dell'oggetto newTransformer
.ByteArrayOutputStream
utilizzando il relativo costruttore.javax.xml.transform.dom.DOMSource
utilizzando il relativo costruttore e passando l'oggetto org.w3c.dom.Document
creato nel passaggio 1.javax.xml.transform.dom.DOMSource
utilizzando il relativo costruttore e passando l'oggetto ByteArrayOutputStream
.ByteArrayOutputStream
richiamando il metodo javax.xml.transform.Transformer
dell'oggetto transform
e passando gli oggetti javax.xml.transform.dom.DOMSource
e javax.xml.transform.stream.StreamResult
.ByteArrayOutputStream
all'array di byte.toByteArray
dell'oggetto ByteArrayOutputStream
.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'array di byte.Eseguire il rendering di un modulo precompilato
Richiamare il metodo FormsServiceClient
dell'oggetto renderPDFForm
e trasmettere i seguenti valori:
com.adobe.idp.Document
che contiene i dati da unire al modulo. Assicurarsi di utilizzare l'oggetto com.adobe.idp.Document
creato nei passaggi uno e due.PDFFormRenderSpec
che memorizza le opzioni di esecuzione.URLSpec
che contiene valori URI richiesti dal servizio Forms.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.
javax.servlet.ServletOutputStream
utilizzato per inviare un flusso di dati del modulo al browser Web del client.com.adobe.idp.Document
richiamando il metodo FormsResult
object ‘s getOutputContent
.java.io.InputStream
richiamando il metodo com.adobe.idp.Document
dell'oggetto getInputStream
.InputStream
dell'oggetto <a1/> e passando l'array di byte come argomento.read
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): Precompilazione di Forms con layout fluidi tramite l'API Java
Inclusione file libreria Java AEM Forms
Impostazione delle proprietà di connessione
Per precompilare un modulo con un layout scorrevole utilizzando l'API di Forms (servizio Web), effettuare le seguenti operazioni:
Includi file di progetto
Creazione di un'origine dati XML in memoria
Creare un oggetto Java DocumentBuilderFactory
chiamando il metodo DocumentBuilderFactory
class newInstance
.
Creare un oggetto Java DocumentBuilder
chiamando il metodo DocumentBuilderFactory
dell'oggetto newDocumentBuilder
.
Chiamare il metodo DocumentBuilder
dell'oggetto newDocument
per creare un'istanza di un oggetto org.w3c.dom.Document
.
Creare l'elemento principale dell'origine dati XML richiamando il metodo org.w3c.dom.Document
dell'oggetto createElement
. Viene creato un oggetto Element
che rappresenta l'elemento principale. Passate al metodo createElement
un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, aggiungere l'elemento principale al documento chiamando il metodo appendChild
dell'oggetto Document
e passare l'oggetto dell'elemento principale come argomento. Le seguenti righe di codice mostrano questa logica di applicazione:
Element root = (Element)document.createElement("transaction"); document.appendChild(root);
Creare l'elemento header dell'origine dati XML chiamando il metodo Document
dell'oggetto createElement
. Passate al metodo createElement
un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, aggiungere l'elemento header all'elemento root chiamando il metodo appendChild
dell'oggetto root
e passare l'oggetto header come argomento. Gli elementi XML che vengono aggiunti all'elemento header corrispondono alla parte statica del modulo. Le seguenti righe di codice mostrano questa logica di applicazione:
Element header = (Element)document.createElement("header"); root.appendChild(header);
Create un elemento secondario che appartiene all'elemento header chiamando il metodo createElement
dell'oggetto Document
e passate un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, impostare un valore per l'elemento secondario chiamandone il metodo appendChild
e passare il metodo Document
dell'oggetto createTextNode
come argomento. Specificate un valore di stringa da visualizzare come valore dell'elemento secondario. Infine, aggiungete l'elemento secondario all'elemento header chiamando il metodo dell'elemento header appendChild
e passate l'oggetto dell'elemento secondario come argomento. Le seguenti righe di codice mostrano la logica di questa applicazione:
Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
Aggiungere tutti gli elementi rimanenti all'elemento header ripetendo l'ultimo passaggio secondario per ciascun campo visualizzato nella parte statica del modulo (nel diagramma dell'origine dati XML, questi campi sono mostrati nella sezione A. (Vedere Informazioni sui sottogruppi di dati.)
Creare l'elemento dettaglio dell'origine dati XML chiamando il metodo Document
dell'oggetto createElement
. Passate al metodo createElement
un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, aggiungere l'elemento dettaglio all'elemento principale chiamando il metodo appendChild
dell'oggetto root
e passare l'oggetto dell'elemento dettaglio come argomento. Gli elementi XML che vengono aggiunti all'elemento dettaglio corrispondono alla parte dinamica del modulo. Le seguenti righe di codice mostrano la logica di questa applicazione:
Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
Create un elemento secondario che appartiene all'elemento dettaglio chiamando il metodo createElement
dell'oggetto Document
e passate un valore di stringa che rappresenta il nome dell'elemento. Inserite il valore restituito in Element
. Quindi, impostare un valore per l'elemento secondario chiamandone il metodo appendChild
e passare il metodo Document
dell'oggetto createTextNode
come argomento. Specificate un valore di stringa da visualizzare come valore dell'elemento secondario. Infine, aggiungete l'elemento secondario all'elemento dettaglio chiamando il metodo dell'elemento dettaglio appendChild
e passate l'oggetto dell'elemento secondario come argomento. Le seguenti righe di codice mostrano la logica di questa applicazione:
Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
Ripetere l'ultimo passaggio secondario affinché tutti gli elementi XML vengano aggiunti all'elemento dettaglio. Per creare correttamente l'origine dati XML utilizzata per compilare il modulo di ordine di acquisto, è necessario aggiungere i seguenti elementi XML all'elemento dettaglio: txtDescription
, numQty
e numUnitPrice
.
Ripetere gli ultimi due passaggi secondari per tutti gli elementi dati utilizzati per precompilare il modulo.
Conversione dell'origine dati XML
javax.xml.transform.Transformer
richiamando il metodo statico javax.xml.transform.Transformer
dell'oggetto newInstance
.Transformer
richiamando il metodo TransformerFactory
dell'oggetto newTransformer
.ByteArrayOutputStream
utilizzando il relativo costruttore.javax.xml.transform.dom.DOMSource
utilizzando il relativo costruttore e passando l'oggetto org.w3c.dom.Document
creato nel passaggio 1.javax.xml.transform.dom.DOMSource
utilizzando il relativo costruttore e passando l'oggetto ByteArrayOutputStream
.ByteArrayOutputStream
richiamando il metodo javax.xml.transform.Transformer
dell'oggetto transform
e passando gli oggetti javax.xml.transform.dom.DOMSource
e javax.xml.transform.stream.StreamResult
.ByteArrayOutputStream
all'array di byte.toByteArray
dell'oggetto ByteArrayOutputStream
.BLOB
utilizzando il relativo costruttore e richiamarne il metodo setBinaryData
e passare l'array di byte.Eseguire il rendering di un modulo precompilato
Richiamare il metodo FormsService
dell'oggetto renderPDFForm
e trasmettere i seguenti valori:
BLOB
che contiene i dati da unire al modulo. Assicurarsi di utilizzare l'oggetto BLOB
creato nei passaggi uno e due.PDFFormRenderSpecc
che memorizza le opzioni di esecuzione. Per ulteriori informazioni, vedere Guida di riferimento delle API di AEM Forms.URLSpec
che contiene valori URI richiesti dal servizio Forms.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.com.adobe.idp.services.holders.BLOBHolder
vuoto compilato dal metodo. Viene utilizzato per memorizzare il modulo PDF di cui è stato effettuato il rendering.javax.xml.rpc.holders.LongHolder
vuoto compilato dal metodo. (Questo argomento memorizza il numero di pagine nel modulo).javax.xml.rpc.holders.StringHolder
vuoto compilato dal metodo. (Questo argomento memorizza il valore delle impostazioni internazionali).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.
FormResult
ottenendo il valore del membro di dati com.adobe.idp.services.holders.FormsResultHolder
dell'oggetto value
.BLOB
contenente dati del modulo richiamando il metodo FormsResult
dell'oggetto getOutputContent
.BLOB
richiamandone il metodo getContentType
.javax.servlet.http.HttpServletResponse
richiamandone il metodo setContentType
e passando il tipo di contenuto dell'oggetto BLOB
.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
.BLOB
dell'oggetto getBinaryData
. Questa attività assegna il contenuto dell'oggetto FormsResult
all'array di byte.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
.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.
Consulta anche