Förifyll Forms med flödeslayouter prepopulating-forms-with-flowable-layouts1
Förifyll Forms med flödeslayouter prepopulating-forms-with-flowable-layouts2
När du fyller i formulär i förväg visas data för användarna i ett återgivet formulär. Anta till exempel att en användare loggar in på en webbplats med ett användarnamn och lösenord. Om autentiseringen lyckas frågar klientprogrammet om det finns användarinformation i en databas. Informationen sammanfogas i formuläret och sedan återges formuläret för användaren. Det innebär att användaren kan visa anpassade data i formuläret.
Att fylla i ett formulär i förväg har följande fördelar:
- Låter användaren visa anpassade data i ett formulär.
- Minskar mängden inmatning som användaren gör för att fylla i ett formulär.
- Säkerställer dataintegriteten genom att ha kontroll över var data placeras.
Följande två XML-datakällor kan fylla i ett formulär i förväg:
- En XDP-datakälla, som är XML som följer XFA-syntax (eller XFDF-data för att fylla i ett formulär som skapats med Acrobat) i förväg.
- En godtycklig XML-datakälla som innehåller namn/värde-par som matchar formulärets fältnamn (exemplen i det här avsnittet använder en godtycklig XML-datakälla).
Det måste finnas ett XML-element för varje formulärfält som du vill fylla i i i förväg. XML-elementnamnet måste matcha fältnamnet. Ett XML-element ignoreras om det inte motsvarar ett formulärfält eller om XML-elementnamnet inte matchar fältnamnet. Det är inte nödvändigt att matcha den ordning i vilken XML-elementen visas, förutsatt att alla XML-element har angetts.
När du fyller i ett formulär som redan innehåller data i förväg måste du ange de data som redan visas i XML-datakällan. Anta att ett formulär som innehåller 10 fält innehåller data i fyra fält. Anta sedan att du vill fylla i de återstående sex fälten i förväg. I det här fallet måste du ange 10 XML-element i XML-datakällan som används för att fylla i formuläret i förväg. Om du bara anger sex element är de fyra ursprungliga fälten tomma.
Du kan t.ex. fylla i ett formulär i förväg, t.ex. exempelbekräftelseformuläret. (Se"Bekräftelseformulär" i Återge interaktiv PDF forms.)
Om du vill fylla i exempelbekräftelseformuläret i förväg måste du skapa en XML-datakälla som innehåller tre XML-element som matchar de tre fälten i formuläret. Det här formuläret innehåller följande tre fält: FirstName
, LastName
och Amount
. Det första steget är att skapa en XML-datakälla som innehåller XML-element som matchar fälten i formulärdesignen. Nästa steg är att tilldela datavärden till XML-elementen, vilket visas i följande XML-kod.
<Untitled>
<FirstName>Jerry</FirstName>
<LastName>Johnson</LastName>
<Amount>250000</Amount>
</Untitled>
När du har fyllt i bekräftelseformuläret i förväg med den här XML-datakällan och sedan återger formuläret, visas de datavärden som du har tilldelat XML-elementen, vilket visas i följande diagram.
Fylla i formulär i förväg med flödeslayouter prepopulating_forms_with_flowable_layouts-1
Forms med flödeslayouter är användbara för att visa en obestämd mängd data för användarna. Eftersom formulärets layout automatiskt anpassas till mängden data som sammanfogas, behöver du inte förbestämma en fast layout eller antal sidor för formuläret som du behöver göra med ett formulär med fast layout.
Ett formulär fylls vanligtvis i med data som hämtas under körning. Det innebär att du kan fylla i ett formulär i förväg genom att skapa en XML-datakälla i minnet och placera data direkt i XML-datakällan i minnet.
Överväg ett webbaserat program, till exempel en onlinebutik. När en onlinekund har slutfört sina inköp placeras alla köpta objekt i en XML-datakälla i minnet som används för att fylla i ett formulär i förväg. I följande diagram visas den här processen, som förklaras i tabellen efter diagrammet.
I följande tabell beskrivs stegen i det här diagrammet.
I följande diagram visas ett exempel på ett inköpsorderformulär. Informationen i tabellen kan justeras efter antalet poster i XML-data.
Om formulärdesign form-design-considerations
Forms med flödeslayouter är baserade på formulärdesigner som skapats i Designer. En formulärdesign specificerar en uppsättning regler för layout, presentation och datainhämtning, inklusive beräkning av värden baserat på användarens indata. Reglerna används när data anges i ett formulär. Fält som läggs till i ett formulär är delformulär i formulärdesignen. I inköpsorderformuläret som visas i det föregående diagrammet är till exempel varje rad ett delformulär. Mer information om hur du skapar en formulärdesign som innehåller delformulär finns i Skapa ett inköpsorderformulär med flödeslayout.
Förstå undergrupper av data understanding-data-subgroups
En XML-datakälla används för att förifylla formulär med fasta layouter och flödeslayouter. Skillnaden är dock att en XML-datakälla som fyller i ett formulär i förväg med en flödeslayout innehåller upprepade XML-element som används för att fylla i delformulär som upprepas i formuläret i förväg. Dessa upprepade XML-element kallas datagrupper.
En XML-datakälla som används för att fylla i inköpsorderformuläret som visas i det föregående diagrammet innehåller fyra upprepade dataundergrupper. Varje datagrupp motsvarar en inköpt artikel. De köpta produkterna är en skärm, en skrivbordslampa, en telefon och en adressbok.
Följande XML-datakälla används för att fylla i inköpsorderformuläret i förväg.
<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>
Observera att varje datagrupp innehåller fyra XML-element som motsvarar denna information:
- Artikelartikelnummer
- Artikelbeskrivning
- Antal artiklar
- Enhetspris
Namnet på en undergrupps överordnade XML-element måste matcha namnet på delformuläret som finns i formulärdesignen. Observera till exempel att namnet på undergruppens överordnade XML-element i föregående diagram är detail
. Detta motsvarar namnet på delformuläret som är i den formulärdesign som inköpsorderformuläret baseras på. Om namnet på undergruppens överordnade XML-element och delformuläret inte matchar, fylls inte formuläret på serversidan i i förväg.
Varje dataundergrupp måste innehålla XML-element som matchar fältnamnen i delformuläret. Delformuläret detail
i formulärdesignen innehåller följande fält:
- txtPartNum
- txtDescription
- numQty
- numUnitPrice
RenderAtClient
till No
sammanfogas endast den första dataposten i formuläret. Om du vill vara säker på att alla dataposter sammanfogas i formuläret anger du RenderAtClient
till Yes
. Mer information om alternativet RenderAtClient
finns i Återge Forms på klienten.Sammanfattning av steg summary-of-steps
Så här fyller du i ett formulär med flödeslayout i förväg:
- Inkludera projektfiler.
- Skapa en XML-datakälla i minnet.
- Konvertera XML-datakällan.
- Återge ett förifyllt formulär.
Inkludera projektfiler
Inkludera nödvändiga filer i utvecklingsprojektet. Om du skapar ett klientprogram med Java, inkluderar du de JAR-filer som behövs. Om du använder webbtjänster måste du inkludera proxyfilerna.
Inkludera projektfiler
Inkludera nödvändiga filer i utvecklingsprojektet. Om du skapar ett klientprogram med Java, inkluderar du de JAR-filer som behövs. Om du använder webbtjänster måste du inkludera proxyfilerna.
Skapa en XML-datakälla i minnet
Du kan använda org.w3c.dom
-klasser för att skapa en XML-datakälla i minnet för att fylla i ett formulär med flödeslayout i förväg. Placera data i en XML-datakälla som överensstämmer med formuläret. Mer information om relationen mellan ett formulär med flödeslayout och XML-datakällan finns i Om datagrupper.
Konvertera XML-datakällan
En XML-datakälla i minnet som skapas med hjälp av org.w3c.dom
-klasser kan konverteras till ett com.adobe.idp.Document
-objekt innan det kan användas för att fylla i ett formulär i förväg. En XML-datakälla i minnet kan konverteras med hjälp av Java XML-omformningsklasser.
org.w3c.dom.Document
-objekt till ett BLOB
-objekt.Återge ett förifyllt formulär
Du återger ett förifyllt formulär precis som andra formulär. Den enda skillnaden är att du använder objektet com.adobe.idp.Document
som innehåller XML-datakällan för att fylla i formuläret i förväg.
Se även
Inkludera AEM Forms Java-biblioteksfiler
Fylla i formulär i förväg med Java API prepopulating-forms-using-the-java-api
Så här fyller du i ett formulär med flödeslayout med Forms API (Java) i förväg:
-
Inkludera projektfiler
Inkludera JAR-klientfiler, t.ex. adobe-forms-client.jar, i Java-projektets klassökväg. Mer information om platsen för dessa filer finns i Inkludera AEM Forms Java-biblioteksfiler.
-
Skapa en XML-datakälla i minnet
-
Skapa ett Java
DocumentBuilderFactory
-objekt genom att anropa metodenDocumentBuilderFactory
class'newInstance
. -
Skapa ett Java
DocumentBuilder
-objekt genom att anropaDocumentBuilderFactory
-objektetsnewDocumentBuilder
-metod. -
Anropa
DocumentBuilder
-objektetsnewDocument
-metod för att instansiera ettorg.w3c.dom.Document
-objekt. -
Skapa XML-datakällans rotelement genom att anropa
org.w3c.dom.Document
-objektetscreateElement
-metod. Detta skapar ettElement
-objekt som representerar rotelementet. Skicka ett strängvärde som representerar elementets namn till metodencreateElement
. Skicka returvärdet tillElement
. Lägg sedan till rotelementet i dokumentet genom att anropaDocument
-objektetsappendChild
-metod och skicka rotelementobjektet som ett argument. Följande kodrader visar den här programlogiken:Element root = (Element)document.createElement("transaction"); document.appendChild(root);
-
Skapa XML-datakällans rubrikelement genom att anropa
Document
-objektetscreateElement
-metod. Skicka ett strängvärde som representerar elementets namn till metodencreateElement
. Skicka returvärdet tillElement
. Lägg sedan till rubrikelementet i rotelementet genom att anroparoot
-objektetsappendChild
-metod och skicka rubrikelementsobjektet som ett argument. De XML-element som läggs till i rubrikelementet motsvarar den statiska delen av formuläret. Följande kodrader visar den här programlogiken:Element header = (Element)document.createElement("header"); root.appendChild(header);
-
Skapa ett underordnat element som tillhör rubrikelementet genom att anropa
Document
-objektetscreateElement
-metod och skicka ett strängvärde som representerar elementets namn. Skicka returvärdet tillElement
. Ange sedan ett värde för det underordnade elementet genom att anropa dessappendChild
-metod och skickaDocument
-objektetscreateTextNode
-metod som ett argument. Ange ett strängvärde som visas som det underordnade elementets värde. Lägg slutligen till det underordnade elementet i rubrikelementet genom att anropa rubrikelementetsappendChild
-metod och skicka det underordnade elementobjektet som ett argument. Följande kodrader visar den här programlogiken:Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
-
Lägg till alla återstående element i rubrikelementet genom att upprepa det sista delsteget för varje fält som visas i den statiska delen av formuläret (i XML-datakällsdiagrammet visas dessa fält i avsnitt A. (Se Förstå undergrupper för data).
-
Skapa XML-datakällans detail-element genom att anropa
Document
-objektetscreateElement
-metod. Skicka ett strängvärde som representerar elementets namn till metodencreateElement
. Skicka returvärdet tillElement
. Lägg sedan till detail-elementet i rotelementet genom att anroparoot
-objektetsappendChild
-metod och skicka detail-elementobjektet som ett argument. XML-elementen som läggs till i detail-elementet motsvarar den dynamiska delen av formuläret. Följande kodrader visar den här programlogiken:Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
-
Skapa ett underordnat element som tillhör detail-elementet genom att anropa
Document
-objektetscreateElement
-metod och skicka ett strängvärde som representerar elementets namn. Skicka returvärdet tillElement
. Ange sedan ett värde för det underordnade elementet genom att anropa dessappendChild
-metod och skickaDocument
-objektetscreateTextNode
-metod som ett argument. Ange ett strängvärde som visas som det underordnade elementets värde. Lägg slutligen till det underordnade elementet i detail-elementet genom att anropa detail-elementetsappendChild
-metod och skicka det underordnade elementobjektet som ett argument. Följande kodrader visar den här programlogiken:Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
-
Upprepa det sista delsteget för alla XML-element som ska läggas till i detail-elementet. Om du vill skapa den XML-datakälla som används för att fylla i inköpsorderformuläret måste du lägga till följande XML-element i detail-elementet:
txtDescription
,numQty
ochnumUnitPrice
. -
Upprepa de två sista delstegen för alla dataobjekt som används för att fylla i formuläret i förväg.
-
-
Konvertera XML-datakällan
- Skapa ett
javax.xml.transform.Transformer
-objekt genom att anropajavax.xml.transform.Transformer
-objektets statiskanewInstance
-metod. - Skapa ett
Transformer
-objekt genom att anropaTransformerFactory
-objektetsnewTransformer
-metod. - Skapa ett
ByteArrayOutputStream
-objekt med hjälp av dess konstruktor. - Skapa ett
javax.xml.transform.dom.DOMSource
-objekt med hjälp av dess konstruktor och skicka detorg.w3c.dom.Document
-objekt som skapades i steg 1. - Skapa ett
javax.xml.transform.dom.DOMSource
-objekt med hjälp av dess konstruktor och skickaByteArrayOutputStream
-objektet. - Fyll i Java
ByteArrayOutputStream
-objektet genom att anropajavax.xml.transform.Transformer
-objektetstransform
-metod och skickajavax.xml.transform.dom.DOMSource
- ochjavax.xml.transform.stream.StreamResult
-objekten. - Skapa en bytearray och tilldela storleken på
ByteArrayOutputStream
-objektet till bytearrayen. - Fyll i bytearrayen genom att anropa
ByteArrayOutputStream
-objektetstoByteArray
-metod. - Skapa ett
com.adobe.idp.Document
-objekt med hjälp av dess konstruktor och skicka bytearrayen.
- Skapa ett
-
Återge ett förifyllt formulär
Anropa
FormsServiceClient
-objektetsrenderPDFForm
-metod och skicka följande värden:- Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget.
- Ett
com.adobe.idp.Document
-objekt som innehåller data som ska sammanfogas med formuläret. Se till att du använder detcom.adobe.idp.Document
-objekt som skapats i steg ett och två. - Ett
PDFFormRenderSpec
-objekt som lagrar körningsalternativ. - Ett
URLSpec
-objekt som innehåller URI-värden som krävs av Forms-tjänsten. - Ett
java.util.HashMap
-objekt som lagrar bifogade filer. Det här är en valfri parameter och du kan angenull
om du inte vill bifoga filer till formuläret.
Metoden
renderPDFForm
returnerar ettFormsResult
-objekt som innehåller en formulärdataström som måste skrivas till klientens webbläsare.- Skapa ett
javax.servlet.ServletOutputStream
-objekt som används för att skicka en formulärdataström till klientens webbläsare. - Skapa ett
com.adobe.idp.Document
-objekt genom att anropa metodengetOutputContent
förFormsResult
-objektet. - Skapa ett
java.io.InputStream
-objekt genom att anropacom.adobe.idp.Document
-objektetsgetInputStream
-metod. - Skapa en bytearray som fyller i den med formulärdataströmmen genom att anropa
InputStream
-objektetsread
-metod och skicka bytearrayen som ett argument. - Anropa
javax.servlet.ServletOutputStream
-objektetswrite
-metod för att skicka formulärdataströmmen till klientens webbläsare. Skicka bytearrayen till metodenwrite
.
Se även
Snabbstart (SOAP): Förifyll Forms med flödeslayouter med Java API
Fylla i formulär i förväg med webbtjänstens API prepopulating-forms-using-the-web-service-api
Så här fyller du i ett formulär med flödeslayout med Forms API (webbtjänsten) i förväg:
-
Inkludera projektfiler
- Skapa Java-proxyklasser som använder Forms tjänst-WSDL. (Se Skapa Java-proxyklasser med Apache Axis.)
- Inkludera Java-proxyklasserna i klassökvägen.
-
Skapa en XML-datakälla i minnet
-
Skapa ett Java
DocumentBuilderFactory
-objekt genom att anropa metodenDocumentBuilderFactory
class'newInstance
. -
Skapa ett Java
DocumentBuilder
-objekt genom att anropaDocumentBuilderFactory
-objektetsnewDocumentBuilder
-metod. -
Anropa
DocumentBuilder
-objektetsnewDocument
-metod för att instansiera ettorg.w3c.dom.Document
-objekt. -
Skapa XML-datakällans rotelement genom att anropa
org.w3c.dom.Document
-objektetscreateElement
-metod. Detta skapar ettElement
-objekt som representerar rotelementet. Skicka ett strängvärde som representerar elementets namn till metodencreateElement
. Skicka returvärdet tillElement
. Lägg sedan till rotelementet i dokumentet genom att anropaDocument
-objektetsappendChild
-metod och skicka rotelementobjektet som ett argument. Följande kodrader visar den här programlogiken:Element root = (Element)document.createElement("transaction"); document.appendChild(root);
-
Skapa XML-datakällans rubrikelement genom att anropa
Document
-objektetscreateElement
-metod. Skicka ett strängvärde som representerar elementets namn till metodencreateElement
. Skicka returvärdet tillElement
. Lägg sedan till rubrikelementet i rotelementet genom att anroparoot
-objektetsappendChild
-metod och skicka rubrikelementsobjektet som ett argument. De XML-element som läggs till i rubrikelementet motsvarar den statiska delen av formuläret. Följande kodrader visar den här programlogiken:Element header = (Element)document.createElement("header"); root.appendChild(header);
-
Skapa ett underordnat element som tillhör rubrikelementet genom att anropa
Document
-objektetscreateElement
-metod och skicka ett strängvärde som representerar elementets namn. Skicka returvärdet tillElement
. Ange sedan ett värde för det underordnade elementet genom att anropa dessappendChild
-metod och skickaDocument
-objektetscreateTextNode
-metod som ett argument. Ange ett strängvärde som visas som det underordnade elementets värde. Lägg slutligen till det underordnade elementet i rubrikelementet genom att anropa rubrikelementetsappendChild
-metod och skicka det underordnade elementobjektet som ett argument. Följande kodrader visar den här programlogiken:Element poNum= (Element)document.createElement("txtPONum"); poNum.appendChild(document.createTextNode("8745236985")); header.appendChild(LastName);
-
Lägg till alla återstående element i rubrikelementet genom att upprepa det sista delsteget för varje fält som visas i den statiska delen av formuläret (i XML-datakällsdiagrammet visas dessa fält i avsnitt A. (Se Förstå undergrupper för data).
-
Skapa XML-datakällans detail-element genom att anropa
Document
-objektetscreateElement
-metod. Skicka ett strängvärde som representerar elementets namn till metodencreateElement
. Skicka returvärdet tillElement
. Lägg sedan till detail-elementet i rotelementet genom att anroparoot
-objektetsappendChild
-metod och skicka detail-elementobjektet som ett argument. XML-elementen som läggs till i detail-elementet motsvarar den dynamiska delen av formuläret. Följande kodrader visar den här programlogiken:Element detail = (Element)document.createElement("detail"); root.appendChild(detail);
-
Skapa ett underordnat element som tillhör detail-elementet genom att anropa
Document
-objektetscreateElement
-metod och skicka ett strängvärde som representerar elementets namn. Skicka returvärdet tillElement
. Ange sedan ett värde för det underordnade elementet genom att anropa dessappendChild
-metod och skickaDocument
-objektetscreateTextNode
-metod som ett argument. Ange ett strängvärde som visas som det underordnade elementets värde. Lägg slutligen till det underordnade elementet i detail-elementet genom att anropa detail-elementetsappendChild
-metod och skicka det underordnade elementobjektet som ett argument. Följande kodrader visar den här programlogiken:Element txtPartNum = (Element)document.createElement("txtPartNum"); txtPartNum.appendChild(document.createTextNode("00010-100")); detail.appendChild(txtPartNum);
-
Upprepa det sista delsteget för alla XML-element som ska läggas till i detail-elementet. Om du vill skapa den XML-datakälla som används för att fylla i inköpsorderformuläret måste du lägga till följande XML-element i detail-elementet:
txtDescription
,numQty
ochnumUnitPrice
. -
Upprepa de två sista delstegen för alla dataobjekt som används för att fylla i formuläret i förväg.
-
-
Konvertera XML-datakällan
- Skapa ett
javax.xml.transform.Transformer
-objekt genom att anropajavax.xml.transform.Transformer
-objektets statiskanewInstance
-metod. - Skapa ett
Transformer
-objekt genom att anropaTransformerFactory
-objektetsnewTransformer
-metod. - Skapa ett
ByteArrayOutputStream
-objekt med hjälp av dess konstruktor. - Skapa ett
javax.xml.transform.dom.DOMSource
-objekt med hjälp av dess konstruktor och skicka detorg.w3c.dom.Document
-objekt som skapades i steg 1. - Skapa ett
javax.xml.transform.dom.DOMSource
-objekt med hjälp av dess konstruktor och skickaByteArrayOutputStream
-objektet. - Fyll i Java
ByteArrayOutputStream
-objektet genom att anropajavax.xml.transform.Transformer
-objektetstransform
-metod och skickajavax.xml.transform.dom.DOMSource
- ochjavax.xml.transform.stream.StreamResult
-objekten. - Skapa en bytearray och tilldela storleken på
ByteArrayOutputStream
-objektet till bytearrayen. - Fyll i bytearrayen genom att anropa
ByteArrayOutputStream
-objektetstoByteArray
-metod. - Skapa ett
BLOB
-objekt med hjälp av dess konstruktor, anropa desssetBinaryData
-metod och skicka bytearrayen.
- Skapa ett
-
Återge ett förifyllt formulär
Anropa
FormsService
-objektetsrenderPDFForm
-metod och skicka följande värden:- Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget.
- Ett
BLOB
-objekt som innehåller data som ska sammanfogas med formuläret. Se till att du använder objektetBLOB
som skapades i steg ett och två. - Ett
PDFFormRenderSpecc
-objekt som lagrar körningsalternativ. Mer information finns i AEM Forms API Reference. - Ett
URLSpec
-objekt som innehåller URI-värden som krävs av Forms-tjänsten. - Ett
java.util.HashMap
-objekt som lagrar bifogade filer. Det här är en valfri parameter och du kan angenull
om du inte vill bifoga filer till formuläret. - Ett tomt
com.adobe.idp.services.holders.BLOBHolder
-objekt som fylls i av metoden. Det här används för att lagra det återgivna PDF-formuläret. - Ett tomt
javax.xml.rpc.holders.LongHolder
-objekt som fylls i av metoden. (Det här argumentet lagrar antalet sidor i formuläret). - Ett tomt
javax.xml.rpc.holders.StringHolder
-objekt som fylls i av metoden. (Det här argumentet lagrar språkets värde). - Ett tomt
com.adobe.idp.services.holders.FormsResultHolder
-objekt som innehåller resultatet av den här åtgärden.
Metoden
renderPDFForm
fyller i objektetcom.adobe.idp.services.holders.FormsResultHolder
som skickas som det sista argumentvärdet med en formulärdataström som måste skrivas till klientens webbläsare.- Skapa ett
FormResult
-objekt genom att hämta värdet förcom.adobe.idp.services.holders.FormsResultHolder
-objektetsvalue
-datamedlem. - Skapa ett
BLOB
-objekt som innehåller formulärdata genom att anropaFormsResult
-objektetsgetOutputContent
-metod. - Hämta innehållstypen för objektet
BLOB
genom att anropa dessgetContentType
-metod. - Ange innehållstypen för objektet
javax.servlet.http.HttpServletResponse
genom att anropa desssetContentType
-metod och skicka innehållstypen för objektetBLOB
. - Skapa ett
javax.servlet.ServletOutputStream
-objekt som används för att skriva formulärdataströmmen till klientwebbläsaren genom att anropajavax.servlet.http.HttpServletResponse
-objektetsgetOutputStream
-metod. - Skapa en bytearray och fyll i den genom att anropa
BLOB
-objektetsgetBinaryData
-metod. Den här aktiviteten tilldelar innehållet i objektetFormsResult
till bytearrayen. - Anropa
javax.servlet.http.HttpServletResponse
-objektetswrite
-metod för att skicka formulärdataströmmen till klientens webbläsare. Skicka bytearrayen till metodenwrite
.
note note NOTE Metoden renderPDFForm
fyller i objektetcom.adobe.idp.services.holders.FormsResultHolder
som skickas som det sista argumentvärdet med en formulärdataström som måste skrivas till klientens webbläsare.
Se även
Anropa AEM Forms med Base64-kodning