Återger interaktiv PDF forms rendering-interactive-pdf-forms
Exempel och exempel i det här dokumentet är bara för AEM Forms i JEE-miljö.
Forms-tjänsten återger interaktiv PDF forms till klientenheter, vanligtvis webbläsare, för att samla in information från användare. När ett interaktivt formulär har återgetts kan användaren ange data i formulärfält och klicka på en Skicka-knapp som finns i formuläret för att skicka tillbaka information till Forms-tjänsten. Adobe Reader eller Acrobat måste vara installerade på den dator som är värd för klientwebbläsaren för att ett interaktivt PDF-formulär ska kunna visas.
Exempellåneansökan
Ett exempel på en låneansökan läggs in för att visa hur Forms-tjänsten använder interaktiva blanketter för att samla in information från användarna. Med det här programmet kan en användare fylla i ett formulär med de data som krävs för att skydda ett lån och sedan skicka data till Forms-tjänsten. I följande diagram visas låneansökans logiska flöde.
I följande tabell beskrivs stegen i det här diagrammet.
GetLoanForm
Java Servlet anropas från HTML.GetLoanForm
Java Servlet använder Forms klient-API:t för att återge låneformuläret till klientens webbläsare. (Se Återge ett interaktivt PDF-formulär med Java API.)HandleData
Java Servlet. (Se "Låneblankett".)HandleData
Java Servlet använder Forms klient-API:t för att bearbeta formuläröverföringen och hämta formulärdata. Data lagras sedan i en företagsdatabas. (Se Hantera skickade Forms.)Låneblankett
Det här interaktiva låneformuläret återges av exempellåneansökans GetLoanForm
Java Servlet.
Bekräftelseformulär
Det här formuläret återges av exempelprogrammets HandleData
Java Servlet.
The HandleData
Java Servlet förifyller det här formuläret med användarens för- och efternamn och mängden. När formuläret har fyllts i i i förväg skickas det till klientens webbläsare. (Se Förifyll Forms med flödeslayouter)
Java Servlets
Exempellåneansökan är ett exempel på en Forms-tjänstapplikation som finns som en Java-server. En Java-server är ett Java-program som körs på en J2EE-programserver, t.ex. WebSphere, och som innehåller API-kod för Forms-tjänstklienten.
I följande kod visas syntaxen för en Java-server med namnet GetLoanForm:
public class GetLoanForm extends HttpServlet implements Servlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp
throws ServletException, IOException {
}
public void doPost(HttpServletRequest req, HttpServletResponse resp
throws ServletException, IOException {
}
Normalt placerar du inte Forms klient-API-kod i Java-serverns doGet
eller doPost
-metod. Det är bättre programmeringspraxis att placera den här koden i en separat klass, instansiera klassen inifrån doPost
metod (eller doGet
och anropa lämpliga metoder. För kodförkortning begränsas dock kodexemplen i det här avsnittet till ett minimum och kodexempel placeras i doPost
-metod.
Sammanfattning av steg
Så här återger du ett interaktivt PDF-formulär:
- Inkludera projektfiler.
- Skapa ett Forms Client API-objekt.
- Ange URI-värden.
- Bifoga filer i formuläret (valfritt).
- Återge ett interaktivt PDF-formulär.
- Skriv formulärdataströmmen till klientens webbläsare.
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 ett Forms Client API-objekt
Innan du programmässigt kan utföra en API-åtgärd för Forms-tjänstklienten måste du skapa ett Forms Client API-objekt. Om du använder Java API skapar du en FormsServiceClient
-objekt. Om du använder Forms webbtjänst-API skapar du en FormsService
-objekt.
Ange URI-värden
Du kan ange URI-värden som krävs av Forms-tjänsten för att återge ett formulär. En formulärdesign som sparas som en del av ett Forms-program kan refereras med hjälp av innehållets rot-URI-värde repository:///
. Ta till exempel följande formulärdesign med namnet Loan.xdp som finns i ett Forms-program med namnet FormsApplication:
Om du vill komma åt den här formulärdesignen anger du Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
som formulärnamnet (den första parametern som skickas till renderPDFForm
metod) och repository:///
som innehållsrots-URI-värde.
Sökvägen till en resurs i ett Forms-program är:
Applications/Application-name/Application-version/Folder.../Filename
Följande värden visar några exempel på URI-värden:
- Applications/AppraisalReport/1.0/Forms/FullForm.xdp
- Applications/AnotherApp/1.1/Assets/picture.jpg
- Applications/SomeApp/2.0/Resources/Data/XSDs/MyData.xsd
När du återger ett interaktivt formulär kan du definiera URI-värden, t.ex. mål-URL:en som formulärdata ska skickas till. Mål-URL:en kan definieras på något av följande sätt:
- Klicka på knappen Skicka när du designar formulärdesignen i Designer
- Genom att använda Forms klient-API för tjänster
Om mål-URL:en definieras i formulärdesignen, ska du inte åsidosätta den med Forms klient-API. Det innebär att om du anger mål-URL:en med Forms API återställs den angivna URL:en i formulärdesignen till den som anges med API:t. Om du vill skicka formuläret PDF till den mål-URL som anges i formulärdesignen, anger du mål-URL:en automatiskt till en tom sträng.
Om du har ett formulär som innehåller en skicka-knapp och en beräkningsknapp (med ett motsvarande skript som körs på servern) kan du programmässigt definiera den URL som formuläret skickas till för att köra skriptet. Använd knappen Skicka i formulärdesignen för att ange den URL som formulärdata ska skickas till. (Se Beräknar formulärdata.)
com.adobe.idp.Document
till tjänsten Forms. The com.adobe.idp.Document
-instansen innehåller en formulärdesign. (Se Skicka dokument till Forms.)Bifoga filer i formuläret
Du kan bifoga filer till ett formulär. När du återger ett PDF-formulär med bifogade filer kan användare hämta de bifogade filerna i Acrobat med hjälp av rutan för bifogade filer. Du kan bifoga olika filtyper till ett formulär, t.ex. en textfil, eller till en binär fil, t.ex. en JPG-fil.
Återge ett interaktivt PDF-formulär
Om du vill återge ett formulär använder du en formulärdesign som har skapats i Designer och sparats som en XDP- eller PDF-fil. Du kan även återge ett formulär som har skapats med Acrobat och sparats som en PDF-fil. Om du vill återge ett interaktivt PDF-formulär anropar du FormsServiceClient
objektets renderPDFForm
metod eller renderPDFForm2
-metod.
The renderPDFForm
använder URLSpec
-objekt. Innehållsroten till XDP-filen skickas till Forms-tjänsten med URLSpec
objektets setContentRootURI
-metod. Formulärdesignens namn ( formQuery
) skickas som ett separat parametervärde. De två värdena sammanfogas för att få den absoluta referensen till formulärdesignen.
The renderPDFForm2
metoden accepterar com.adobe.idp.Document
-instans som innehåller XDP- eller PDF-dokumentet som ska återges.
Återge ett interaktivt PDF-formulär med Java API render-an-interactive-pdf-form-using-the-java-api
Återge ett interaktivt PDF-formulär med Forms API (Java):
-
Inkludera projektfiler
Inkludera JAR-klientfiler, t.ex. adobe-forms-client.jar, i Java-projektets klassökväg.
-
Skapa ett Forms Client API-objekt
- Skapa en
ServiceClientFactory
objekt som innehåller anslutningsegenskaper. - Skapa en
FormsServiceClient
genom att använda konstruktorn och skickaServiceClientFactory
-objekt.
- Skapa en
-
Ange URI-värden
- Skapa en
URLSpec
objekt som lagrar URI-värden med hjälp av dess konstruktor. - Anropa
URLSpec
objektetssetApplicationWebRoot
och skicka ett strängvärde som representerar programmets webbrot. - Anropa
URLSpec
objektetssetContentRootURI
och skicka ett strängvärde som anger innehållets rot-URI-värde. Kontrollera att formulärdesignen finns i innehållets rot-URI. Annars genereras ett undantag. Om du vill referera till databasen anger durepository:///
. - Anropa
URLSpec
objektetssetTargetURL
och skicka ett strängvärde som anger det mål-URL-värde som formulärdata ska skickas till. Om du definierar mål-URL:en i formulärdesignen kan du skicka en tom sträng. Du kan också ange den URL dit ett formulär ska skickas för att utföra beräkningar.
- Skapa en
-
Bifoga filer i formuläret
-
Skapa en
java.util.HashMap
-objekt för att lagra bifogade filer med hjälp av dess konstruktor. -
Anropa
java.util.HashMap
objektetsput
metod för varje fil som ska bifogas det återgivna formuläret. Skicka följande värden till den här metoden:- Ett strängvärde som anger namnet på den bifogade filen, inklusive filnamnstillägget.
-
A
com.adobe.idp.Document
objekt som innehåller den bifogade filen.
note note NOTE Upprepa det här steget för varje fil som ska bifogas formuläret. Det här steget är valfritt och du kan godkänna det null
om du inte vill skicka bifogade filer. -
-
Återge ett interaktivt PDF-formulär
Anropa
FormsServiceClient
objektetsrenderPDFForm
och skicka följande värden:- Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
com.adobe.idp.Document
objekt som innehåller data som ska sammanfogas med formuläret. Om du inte vill sammanfoga data skickar du en tomcom.adobe.idp.Document
-objekt. - A
PDFFormRenderSpec
objekt som lagrar körningsalternativ. Det här är en valfri parameter och du kan angenull
om du inte vill ange körningsalternativ. - A
URLSpec
objekt som innehåller URI-värden som krävs av Forms-tjänsten. - A
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.
The
renderPDFForm
returnerar enFormsResult
objekt som innehåller en formulärdataström som måste skrivas till klientens webbläsare. - Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
-
Skriv formulärdataströmmen till klientens webbläsare
- Skapa en
com.adobe.idp.Document
genom att anropaFormsResult
objektgetOutputContent
-metod. - Hämta innehållstypen för
com.adobe.idp.Document
genom att anropa dessgetContentType
-metod. - Ange
javax.servlet.http.HttpServletResponse
objektets innehållstyp genom att anropa desssetContentType
metoden och skicka innehållstypen förcom.adobe.idp.Document
-objekt. - Skapa en
javax.servlet.ServletOutputStream
som används för att skriva formulärdataströmmen till klientens webbläsare genom att anropajavax.servlet.http.HttpServletResponse
objektetsgetOutputStream
-metod. - Skapa en
java.io.InputStream
genom att anropacom.adobe.idp.Document
objektetsgetInputStream
-metod. - Skapa en bytearray och fylla den med formulärdataströmmen genom att anropa
InputStream
objektetsread
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 tillwrite
-metod.
- Skapa en
Återge ett interaktivt PDF-formulär med hjälp av webbtjänstens API render-an-interactive-pdf-form-using-the-web-service-api
Återge ett interaktivt PDF-formulär med Forms API (webbtjänst):
-
Inkludera projektfiler
- Skapa Java-proxyklasser som använder Forms tjänst-WSDL.
- Inkludera Java-proxyklasserna i klassökvägen.
-
Skapa ett Forms Client API-objekt
Skapa en
FormsService
och ange autentiseringsvärden. -
Ange URI-värden
- Skapa en
URLSpec
objekt som lagrar URI-värden med hjälp av dess konstruktor. - Anropa
URLSpec
objektetssetApplicationWebRoot
och skicka ett strängvärde som representerar programmets webbrot. - Anropa
URLSpec
objektetssetContentRootURI
och skicka ett strängvärde som anger innehållets rot-URI-värde. Kontrollera att formulärdesignen finns i innehållets rot-URI. Annars genereras ett undantag. Om du vill referera till databasen anger durepository:///
. - Anropa
URLSpec
objektetssetTargetURL
och skicka ett strängvärde som anger det mål-URL-värde som formulärdata ska skickas till. Om du definierar mål-URL:en i formulärdesignen kan du skicka en tom sträng. Du kan också ange den URL dit ett formulär ska skickas för att utföra beräkningar.
- Skapa en
-
Bifoga filer i formuläret
-
Skapa en
java.util.HashMap
-objekt för att lagra bifogade filer med hjälp av dess konstruktor. -
Anropa
java.util.HashMap
objektetsput
metod för varje fil som ska bifogas det återgivna formuläret. Skicka följande värden till den här metoden:- Ett strängvärde som anger namnet på den bifogade filen, inklusive filnamnstillägget
-
A
BLOB
objekt som innehåller den bifogade filen
note note NOTE Upprepa det här steget för varje fil som ska bifogas formuläret. -
-
Återge ett interaktivt PDF-formulär
Anropa
FormsService
objektetsrenderPDFForm
och skicka följande värden:- Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
BLOB
objekt som innehåller data som ska sammanfogas med formuläret. Om du inte vill sammanfoga data skickar dunull
. - A
PDFFormRenderSpec
objekt som lagrar körningsalternativ. Det här är en valfri parameter och du kan angenull
om du inte vill ange körningsalternativ. - A
URLSpec
objekt som innehåller URI-värden som krävs av Forms-tjänsten. - A
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. - En tom
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. - En tom
javax.xml.rpc.holders.LongHolder
objekt som fylls i av metoden. (Detta argument lagrar antalet sidor i formuläret.) - En tom
javax.xml.rpc.holders.StringHolder
objekt som fylls i av metoden. (Det här argumentet lagrar språkets värde.) - En tom
com.adobe.idp.services.holders.FormsResultHolder
objekt som innehåller resultatet av den här åtgärden.
The
renderPDFForm
metoden fyller icom.adobe.idp.services.holders.FormsResultHolder
objekt som skickas som det sista argumentvärdet med en formulärdataström som måste skrivas till klientens webbläsare. - Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
-
Skriv formulärdataströmmen till klientens webbläsare
- Skapa en
FormResult
genom att hämta värdet förcom.adobe.idp.services.holders.FormsResultHolder
objektetsvalue
datamedlem. - Skapa en
BLOB
objekt som innehåller formulärdata genom att anropaFormsResult
objektetsgetOutputContent
-metod. - Hämta innehållstypen för
BLOB
genom att anropa dessgetContentType
-metod. - Ange
javax.servlet.http.HttpServletResponse
objektets innehållstyp genom att anropa desssetContentType
metoden och skicka innehållstypen förBLOB
-objekt. - Skapa en
javax.servlet.ServletOutputStream
som används för att skriva formulärdataströmmen till klientens webbläsare genom att anropajavax.servlet.http.HttpServletResponse
objektetsgetOutputStream
-metod. - Skapa en bytearray och fylla i den genom att anropa
BLOB
objektetsgetBinaryData
-metod. Den här aktiviteten tilldelar innehållet iFormsResult
till bytearrayen. - Anropa
javax.servlet.http.HttpServletResponse
objektetswrite
metod för att skicka formulärdataströmmen till klientens webbläsare. Skicka bytearrayen tillwrite
-metod.
- Skapa en
Skriv formulärdataströmmen till klientens webbläsare
När Forms-tjänsten återger ett formulär returneras en formulärdataström som du måste skriva till klientens webbläsare. När formuläret skrivs till webbläsaren visas det för användaren.