Als u formulieren vooraf invult, worden gegevens weergegeven voor gebruikers in een gegenereerd formulier. Stel bijvoorbeeld dat een gebruiker zich aanmeldt bij een website met een gebruikersnaam en wachtwoord. Als de verificatie is gelukt, vraagt de clienttoepassing een database om gebruikersgegevens. De gegevens worden samengevoegd in het formulier en het formulier wordt vervolgens weergegeven aan de gebruiker. Hierdoor kan de gebruiker gepersonaliseerde gegevens weergeven in het formulier.
Het vooraf invullen van een formulier heeft de volgende voordelen:
De volgende twee XML-gegevensbronnen kunnen een formulier vooraf invullen:
Er moet een XML-element aanwezig zijn voor elk formulierveld dat u vooraf wilt invullen. De naam van het XML-element moet overeenkomen met de veldnaam. Een XML-element wordt genegeerd als het niet overeenkomt met een formulierveld of als de naam van het XML-element niet overeenkomt met de veldnaam. Het is niet nodig de volgorde aan te passen waarin de XML-elementen worden weergegeven, zolang alle XML-elementen zijn opgegeven.
Wanneer u een formulier invult dat al gegevens bevat, moet u opgeven welke gegevens al in de XML-gegevensbron worden weergegeven. Stel dat een formulier met tien velden gegevens bevat in vier velden. Ga er vervolgens van uit dat u de resterende zes velden vooraf wilt invullen. In dit geval moet u 10 XML-elementen opgeven in de XML-gegevensbron die wordt gebruikt om het formulier vooraf in te vullen. Als u slechts zes elementen opgeeft, zijn de oorspronkelijke vier velden leeg.
U kunt bijvoorbeeld een formulier zoals het voorbeeldbevestigingsformulier vooraf invullen. (Zie "Bevestigingsformulier" in Interactieve PDF forms renderen.)
Als u het voorbeeldbevestigingsformulier vooraf wilt invullen, moet u een XML-gegevensbron maken die drie XML-elementen bevat die overeenkomen met de drie velden in het formulier. Dit formulier bevat de volgende drie velden: FirstName
, LastName
en Amount
. De eerste stap bestaat uit het maken van een XML-gegevensbron die XML-elementen bevat die overeenkomen met de velden in het formulierontwerp. De volgende stap bestaat uit het toewijzen van gegevenswaarden aan de XML-elementen, zoals in de volgende XML-code wordt getoond.
<Untitled>
<FirstName>Jerry</FirstName>
<LastName>Johnson</LastName>
<Amount>250000</Amount>
</Untitled>
Nadat u het bevestigingsformulier vooraf hebt ingevuld met deze XML-gegevensbron en het formulier hebt gegenereerd, worden de gegevenswaarden weergegeven die u aan de XML-elementen hebt toegewezen, zoals in het volgende diagram wordt getoond.
Forms met stroombare indelingen is handig om een onbepaalde hoeveelheid gegevens weer te geven aan gebruikers. Omdat de indeling van het formulier automatisch wordt aangepast aan de hoeveelheid samengevoegde gegevens, hoeft u niet vooraf een vaste indeling of een vast aantal pagina's voor het formulier vast te stellen, zoals u moet doen met een formulier met een vaste indeling.
Een formulier wordt meestal gevuld met gegevens die tijdens runtime worden verkregen. Hierdoor kunt u een formulier vooraf invullen door een XML-gegevensbron in het geheugen te maken en de gegevens rechtstreeks in de XML-gegevensbron in het geheugen te plaatsen.
Overweeg een webtoepassing, zoals een onlinewinkel. Nadat een online winkelier de aanschaf van items heeft voltooid, worden alle aangeschafte items in een XML-gegevensbron in het geheugen geplaatst die wordt gebruikt om een formulier vooraf in te vullen. Het volgende diagram toont dit proces, dat in de lijst na het diagram wordt verklaard.
In de volgende tabel worden de stappen in dit diagram beschreven.
Stap |
Beschrijving |
---|---|
1 |
Een gebruiker koopt objecten aan in een online winkel op internet. |
2 |
Nadat de gebruiker klaar is met het aanschaffen van items en op de knop Verzenden klikt, wordt een XML-gegevensbron in het geheugen gemaakt. Aangeschafte items en gebruikersgegevens worden in de XML-gegevensbron in het geheugen geplaatst. |
3 |
De XML-gegevensbron wordt gebruikt om een inkooporderformulier vooraf in te vullen (een voorbeeld van dit formulier wordt in deze tabel weergegeven). |
4 |
Het inkooporderformulier wordt weergegeven in de webbrowser van de client. |
In het volgende diagram ziet u een voorbeeld van een inkooporderformulier. De informatie in de tabel kan worden aangepast aan het aantal records in de XML-gegevens.
Een formulier kan vooraf worden ingevuld met gegevens uit andere bronnen, zoals een ondernemingsdatabase of externe toepassingen.
Forms met stroombare indelingen is gebaseerd op formulierontwerpen die zijn gemaakt in Designer. Een formulierontwerp bevat een set regels voor de indeling, presentatie en gegevensvastlegging, inclusief het berekenen van waarden op basis van de gebruikersinvoer. De regels worden toegepast wanneer gegevens in een formulier worden ingevoerd. Velden die aan een formulier worden toegevoegd, zijn subformulieren die zich binnen het formulierontwerp bevinden. In het inkooporderformulier dat in het vorige diagram wordt weergegeven, is elke regel bijvoorbeeld een subformulier. Zie Een inkooporderformulier maken met een stroombare indeling voor informatie over het maken van een formulierontwerp dat subformulieren bevat.
Een XML-gegevensbron wordt gebruikt om formulieren vooraf in te vullen met vaste indelingen en stroombare indelingen. Het verschil is echter dat een XML-gegevensbron die een formulier met een stroombare indeling vooraf invult, herhalende XML-elementen bevat die worden gebruikt om vooraf subformulieren in te vullen die in het formulier worden herhaald. Deze herhaalde XML-elementen worden gegevenssubgroepen genoemd.
Een XML-gegevensbron die wordt gebruikt om de inkoopordervorm die in het vorige diagram wordt weergegeven, vooraf in te vullen, bevat vier herhalende gegevenssubgroepen. Elke gegevenssubgroep komt overeen met een aangeschaft item. De aangeschafte items zijn een monitor, een bureaulamp, een telefoon en een adresboek.
De volgende XML-gegevensbron wordt gebruikt om het inkooporderformulier vooraf in te vullen.
<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>
Elke gegevenssubgroep bevat vier XML-elementen die overeenkomen met deze informatie:
De naam van het bovenliggende XML-element van een gegevenssubgroep moet overeenkomen met de naam van het subformulier dat zich in het formulierontwerp bevindt. In het vorige diagram ziet u bijvoorbeeld dat de naam van het bovenliggende XML-element van de gegevenssubgroep detail
is. Dit komt overeen met de naam van het subformulier in het formulierontwerp waarop het inkooporderformulier is gebaseerd. Als de naam van het bovenliggende XML-element van de gegevenssubgroep en het subformulier niet overeenkomen, wordt een formulier op de server niet vooraf ingevuld.
Elke gegevenssubgroep moet XML-elementen bevatten die overeenkomen met de veldnamen in het subformulier. Het subformulier detail
in het formulierontwerp bevat de volgende velden:
Als u probeert een formulier vooraf in te vullen met een gegevensbron die herhaalde XML-elementen bevat en u de optie RenderAtClient
instelt op No
, wordt alleen de eerste gegevensrecord in het formulier samengevoegd. Om ervoor te zorgen dat alle gegevensverslagen in de vorm worden samengevoegd, plaats RenderAtClient
aan Yes
. Zie Forms renderen op de client voor informatie over de optie RenderAtClient
.
Zie Referentiehandleiding voor services voor AEM Forms voor meer informatie over de Forms-service.
Als u een formulier vooraf wilt invullen met een stroombare indeling, voert u de volgende taken uit:
Projectbestanden opnemen
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
Projectbestanden opnemen
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
Een XML-gegevensbron in het geheugen maken
Met de klassen org.w3c.dom
kunt u een XML-gegevensbron in het geheugen maken om een formulier vooraf in te vullen met een stroombare indeling. U moet gegevens in een XML-gegevensbron plaatsen die voldoet aan het formulier. Zie Gegevenssubgroepen voor informatie over de relatie tussen een formulier met een stroombare indeling en de XML-gegevensbron.
De XML-gegevensbron converteren
Een XML-gegevensbron in het geheugen die is gemaakt met de klassen org.w3c.dom
, kan worden omgezet in een com.adobe.idp.Document
-object voordat het kan worden gebruikt om een formulier vooraf in te vullen. Een XML-gegevensbron in het geheugen kan worden geconverteerd met Java XML-transformatieklassen.
Als u de WSDL van de Forms-service gebruikt om een formulier vooraf in te vullen, moet u een org.w3c.dom.Document
-object omzetten in een BLOB
-object.
Een vooraf ingevuld formulier renderen
U kunt een vooraf ingevuld formulier net als een ander formulier weergeven. Het enige verschil is dat u het object com.adobe.idp.Document
gebruikt dat de XML-gegevensbron bevat om het formulier vooraf in te vullen.
Zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Interactieve PDF forms renderen
Webtoepassingen maken die Forms renderen
Voer de volgende stappen uit om een formulier met een stroombare indeling vooraf in te vullen met de Forms API (Java):
Projectbestanden opnemen
Neem client-JAR-bestanden, zoals adobe-forms-client.jar, op in het klassenpad van uw Java-project. Zie Including AEM Forms Java-bibliotheekbestanden voor informatie over de locatie van deze bestanden.
Een XML-gegevensbron in het geheugen maken
Maak een Java DocumentBuilderFactory
-object door de DocumentBuilderFactory
-klasse" newInstance
-methode aan te roepen.
Maak een Java DocumentBuilder
-object door de methode newDocumentBuilder
van het object DocumentBuilderFactory
aan te roepen.
Roep de methode DocumentBuilder
van het object newDocument
aan om een org.w3c.dom.Document
-object te instantiëren.
Maak het basiselement van de XML-gegevensbron door de methode createElement
van het object org.w3c.dom.Document
aan te roepen. Hiermee wordt een Element
-object gemaakt dat het hoofdelement vertegenwoordigt. Geef een tekenreekswaarde die de naam van het element vertegenwoordigt, door aan de methode createElement
. Cast de terugkeerwaarde aan Element
. Voeg vervolgens het hoofdelement aan het document toe door de methode appendChild
van het object Document
aan te roepen en geef het hoofdelement als een argument door. Deze toepassingslogica wordt in de volgende coderegels getoond:
Element root = (Element)document.createElement("transaction"); document.appendChild(root);
Maak het koptekstelement van de XML-gegevensbron door de methode createElement
van het object Document
aan te roepen. Geef een tekenreekswaarde die de naam van het element vertegenwoordigt, door aan de methode createElement
. Cast de terugkeerwaarde aan Element
. Voeg vervolgens het koptekstelement aan het hoofdelement toe door de methode appendChild
van het object root
aan te roepen en geef het kopelement-object door als een argument. De XML-elementen die aan het koptekstelement worden toegevoegd, komen overeen met het statische gedeelte van het formulier. De volgende coderegels tonen deze toepassingslogica:
Element header = (Element)document.createElement("header"); root.appendChild(header);
Maak een onderliggend element dat tot het koptekstelement behoort door de methode createElement
van het object Document
aan te roepen en geef een tekenreekswaarde door die de naam van het element vertegenwoordigt. Cast de terugkeerwaarde aan Element
. Vervolgens stelt u een waarde voor het onderliggende element in door de methode appendChild
ervan aan te roepen en geeft u de methode createTextNode
van het object Document
als een argument door. Geef een tekenreekswaarde op die als waarde van het onderliggende element wordt weergegeven. Voeg ten slotte het onderliggende element toe aan het koptekstelement door de methode appendChild
van het koptekstelement aan te roepen en geef het onderliggende element als argument door. De volgende coderegels tonen deze toepassingslogica:
Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
Voeg alle resterende elementen aan het koptekstelement toe door de laatste substap te herhalen voor elk veld in het statische gedeelte van het formulier (in het XML-gegevensbrondiagram worden deze velden weergegeven in sectie A. (Zie Gegevenssubgroepen.)
Maak het detailelement van de XML-gegevensbron door de methode createElement
van het object Document
aan te roepen. Geef een tekenreekswaarde die de naam van het element vertegenwoordigt, door aan de methode createElement
. Cast de terugkeerwaarde aan Element
. Voeg vervolgens het detailelement toe aan het hoofdelement door de methode appendChild
van het object root
aan te roepen en geef het detailelementobject als een argument door. De XML-elementen die aan het detailelement worden toegevoegd, komen overeen met het dynamische gedeelte van het formulier. De volgende coderegels tonen deze toepassingslogica:
Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
Maak een onderliggend element dat tot het detailelement behoort door de methode createElement
van het object Document
aan te roepen en geef een tekenreekswaarde door die de naam van het element vertegenwoordigt. Cast de terugkeerwaarde aan Element
. Vervolgens stelt u een waarde voor het onderliggende element in door de methode appendChild
ervan aan te roepen en geeft u de methode createTextNode
van het object Document
als een argument door. Geef een tekenreekswaarde op die als waarde van het onderliggende element wordt weergegeven. Ten slotte voegt u het onderliggende element toe aan het detailelement door de methode appendChild
van het detailelement aan te roepen en geeft u het onderliggende element als argument door. De volgende coderegels tonen deze toepassingslogica:
Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
Herhaal de laatste substap voor alle XML-elementen die aan het detailelement moeten worden toegevoegd. Als u de XML-gegevensbron correct wilt maken die wordt gebruikt om het inkooporderformulier te vullen, moet u de volgende XML-elementen aan het detailelement toevoegen: txtDescription
, numQty
en numUnitPrice
.
Herhaal de laatste twee substappen voor alle gegevensitems die worden gebruikt om het formulier vooraf in te vullen.
De XML-gegevensbron converteren
javax.xml.transform.Transformer
-object door de statische methode newInstance
van het object aan te roepen.javax.xml.transform.Transformer
Transformer
-object door de methode newTransformer
van het object TransformerFactory
aan te roepen.ByteArrayOutputStream
-object met de constructor ervan.javax.xml.transform.dom.DOMSource
-object door de constructor ervan te gebruiken en het object org.w3c.dom.Document
door te geven dat in stap 1 is gemaakt.javax.xml.transform.dom.DOMSource
-object door de constructor ervan te gebruiken en het object ByteArrayOutputStream
door te geven.ByteArrayOutputStream
-object door de methode transform
van het javax.xml.transform.Transformer
-object aan te roepen en de objecten javax.xml.transform.dom.DOMSource
en javax.xml.transform.stream.StreamResult
door te geven.ByteArrayOutputStream
-object toe aan de bytearray.toByteArray
van het object ByteArrayOutputStream
aan te roepen.com.adobe.idp.Document
-object door de constructor ervan te gebruiken en de bytearray door te geven.Een vooraf ingevuld formulier renderen
Roep de methode renderPDFForm
van het object FormsServiceClient
aan en geef de volgende waarden door:
com.adobe.idp.Document
dat gegevens bevat die met het formulier moeten worden samengevoegd. Zorg ervoor dat u het object com.adobe.idp.Document
gebruikt dat in stap 1 en 2 is gemaakt.PDFFormRenderSpec
-object dat uitvoeringsopties opslaat.URLSpec
dat URI-waarden bevat die door de Forms-service worden vereist.java.util.HashMap
-object dat bestandsbijlagen opslaat. Dit is een optionele parameter en u kunt null
opgeven als u geen bestanden aan het formulier wilt koppelen.De methode renderPDFForm
retourneert een FormsResult
-object dat een formuliergegevensstroom bevat die naar de webbrowser van de client moet worden geschreven.
javax.servlet.ServletOutputStream
-object dat wordt gebruikt om een formuliergegevensstroom naar de webbrowser van de client te verzenden.com.adobe.idp.Document
-object door de methode getOutputContent
van het object aan te roepen.FormsResult
java.io.InputStream
-object door de methode getInputStream
van het object com.adobe.idp.Document
aan te roepen.read
van het object InputStream
aan te roepen en de bytearray als een argument door te geven.javax.servlet.ServletOutputStream
van het object write
aan om de gegevensstroom van het formulier naar de webbrowser van de client te verzenden. Geef de bytearray door aan de methode write
.Zie ook
Snel starten (SOAP-modus): Forms vooraf vullen met stroombare indelingen met de Java API
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Voer de volgende stappen uit om een formulier met een stroombare indeling vooraf in te vullen met de Forms API (webservice):
Projectbestanden opnemen
Een XML-gegevensbron in het geheugen maken
Maak een Java DocumentBuilderFactory
-object door de DocumentBuilderFactory
-klasse" newInstance
-methode aan te roepen.
Maak een Java DocumentBuilder
-object door de methode newDocumentBuilder
van het object DocumentBuilderFactory
aan te roepen.
Roep de methode DocumentBuilder
van het object newDocument
aan om een org.w3c.dom.Document
-object te instantiëren.
Maak het basiselement van de XML-gegevensbron door de methode createElement
van het object org.w3c.dom.Document
aan te roepen. Hiermee wordt een Element
-object gemaakt dat het hoofdelement vertegenwoordigt. Geef een tekenreekswaarde die de naam van het element vertegenwoordigt, door aan de methode createElement
. Cast de terugkeerwaarde aan Element
. Voeg vervolgens het hoofdelement aan het document toe door de methode appendChild
van het object Document
aan te roepen en geef het hoofdelement als een argument door. De volgende coderegels tonen deze toepassingslogica:
Element root = (Element)document.createElement("transaction"); document.appendChild(root);
Maak het koptekstelement van de XML-gegevensbron door de methode createElement
van het object Document
aan te roepen. Geef een tekenreekswaarde die de naam van het element vertegenwoordigt, door aan de methode createElement
. Cast de terugkeerwaarde aan Element
. Voeg vervolgens het koptekstelement aan het hoofdelement toe door de methode appendChild
van het object root
aan te roepen en geef het kopelement-object door als een argument. De XML-elementen die aan het koptekstelement worden toegevoegd, komen overeen met het statische gedeelte van het formulier. De volgende coderegels tonen deze toepassingslogica:
Element header = (Element)document.createElement("header"); root.appendChild(header);
Maak een onderliggend element dat tot het koptekstelement behoort door de methode createElement
van het object Document
aan te roepen en geef een tekenreekswaarde door die de naam van het element vertegenwoordigt. Cast de terugkeerwaarde aan Element
. Vervolgens stelt u een waarde voor het onderliggende element in door de methode appendChild
ervan aan te roepen en geeft u de methode createTextNode
van het object Document
als een argument door. Geef een tekenreekswaarde op die als waarde van het onderliggende element wordt weergegeven. Voeg ten slotte het onderliggende element toe aan het koptekstelement door de methode appendChild
van het koptekstelement aan te roepen en geef het onderliggende element als argument door. Deze toepassingslogica wordt in de volgende coderegels getoond:
Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
Voeg alle resterende elementen aan het koptekstelement toe door de laatste substap te herhalen voor elk veld in het statische gedeelte van het formulier (in het XML-gegevensbrondiagram worden deze velden weergegeven in sectie A. (Zie Gegevenssubgroepen.)
Maak het detailelement van de XML-gegevensbron door de methode createElement
van het object Document
aan te roepen. Geef een tekenreekswaarde die de naam van het element vertegenwoordigt, door aan de methode createElement
. Cast de terugkeerwaarde aan Element
. Voeg vervolgens het detailelement toe aan het hoofdelement door de methode appendChild
van het object root
aan te roepen en geef het detailelementobject als een argument door. De XML-elementen die aan het detailelement worden toegevoegd, komen overeen met het dynamische gedeelte van het formulier. Deze toepassingslogica wordt in de volgende coderegels getoond:
Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
Maak een onderliggend element dat tot het detailelement behoort door de methode createElement
van het object Document
aan te roepen en geef een tekenreekswaarde door die de naam van het element vertegenwoordigt. Cast de terugkeerwaarde aan Element
. Vervolgens stelt u een waarde voor het onderliggende element in door de methode appendChild
ervan aan te roepen en geeft u de methode createTextNode
van het object Document
als een argument door. Geef een tekenreekswaarde op die als waarde van het onderliggende element wordt weergegeven. Ten slotte voegt u het onderliggende element toe aan het detailelement door de methode appendChild
van het detailelement aan te roepen en geeft u het onderliggende element als argument door. Deze toepassingslogica wordt in de volgende coderegels getoond:
Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
Herhaal de laatste substap voor alle XML-elementen die aan het detailelement moeten worden toegevoegd. Als u de XML-gegevensbron correct wilt maken die wordt gebruikt om het inkooporderformulier te vullen, moet u de volgende XML-elementen aan het detailelement toevoegen: txtDescription
, numQty
en numUnitPrice
.
Herhaal de laatste twee substappen voor alle gegevensitems die worden gebruikt om het formulier vooraf in te vullen.
De XML-gegevensbron converteren
javax.xml.transform.Transformer
-object door de statische methode newInstance
van het object aan te roepen.javax.xml.transform.Transformer
Transformer
-object door de methode newTransformer
van het object TransformerFactory
aan te roepen.ByteArrayOutputStream
-object met de constructor ervan.javax.xml.transform.dom.DOMSource
-object door de constructor ervan te gebruiken en het object org.w3c.dom.Document
door te geven dat in stap 1 is gemaakt.javax.xml.transform.dom.DOMSource
-object door de constructor ervan te gebruiken en het object ByteArrayOutputStream
door te geven.ByteArrayOutputStream
-object door de methode transform
van het javax.xml.transform.Transformer
-object aan te roepen en de objecten javax.xml.transform.dom.DOMSource
en javax.xml.transform.stream.StreamResult
door te geven.ByteArrayOutputStream
-object toe aan de bytearray.toByteArray
van het object ByteArrayOutputStream
aan te roepen.BLOB
-object door de constructor ervan te gebruiken, activeer de methode setBinaryData
ervan en geef de bytearray door.Een vooraf ingevuld formulier renderen
Roep de methode renderPDFForm
van het object FormsService
aan en geef de volgende waarden door:
BLOB
dat gegevens bevat die met het formulier moeten worden samengevoegd. Zorg ervoor dat u het object BLOB
gebruikt dat in stap 1 en 2 is gemaakt.PDFFormRenderSpecc
-object dat uitvoeringsopties opslaat. Zie AEM Forms API Reference voor meer informatie.URLSpec
dat URI-waarden bevat die door de Forms-service worden vereist.java.util.HashMap
-object dat bestandsbijlagen opslaat. Dit is een optionele parameter en u kunt null
opgeven als u geen bestanden aan het formulier wilt koppelen.com.adobe.idp.services.holders.BLOBHolder
dat door de methode is gevuld. Hiermee slaat u het gerenderde PDF-formulier op.javax.xml.rpc.holders.LongHolder
dat door de methode is gevuld. (In dit argument wordt het aantal pagina's in het formulier opgeslagen).javax.xml.rpc.holders.StringHolder
dat door de methode is gevuld. (In dit argument wordt de waarde van de landinstelling opgeslagen.)com.adobe.idp.services.holders.FormsResultHolder
-object dat de resultaten van deze bewerking zal bevatten.Met de methode renderPDFForm
wordt het object com.adobe.idp.services.holders.FormsResultHolder
dat als laatste argumentwaarde is doorgegeven, gevuld met een formuliergegevensstroom die naar de webbrowser van de client moet worden geschreven.
FormResult
-object door de waarde op te halen van het com.adobe.idp.services.holders.FormsResultHolder
-gegevenslid van het object.value
BLOB
-object dat formuliergegevens bevat door de methode getOutputContent
van het object FormsResult
aan te roepen.BLOB
opgehaald door de methode getContentType
ervan aan te roepen.javax.servlet.http.HttpServletResponse
in door de methode setContentType
ervan aan te roepen en het inhoudstype van het object BLOB
door te geven.javax.servlet.ServletOutputStream
-object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door de methode javax.servlet.http.HttpServletResponse
van het object getOutputStream
aan te roepen.getBinaryData
van het object BLOB
aan te roepen. Deze taak wijst de inhoud van het FormsResult
voorwerp aan de byteserie toe.javax.servlet.http.HttpServletResponse
van het object write
aan om de gegevensstroom van het formulier naar de webbrowser van de client te verzenden. Geef de bytearray door aan de methode write
.Met de methode renderPDFForm
wordt het object com.adobe.idp.services.holders.FormsResultHolder
dat als laatste argumentwaarde is doorgegeven, gevuld met een formuliergegevensstroom die naar de webbrowser van de client moet worden geschreven.
Zie ook
AEM Forms aanroepen met Base64-codering