Skicka dokument till Forms passing-documents-to-the-formsservice
Exempel och exempel i det här dokumentet gäller endast för AEM Forms i JEE-miljö.
AEM Forms-tjänsten återger interaktiv PDF forms till klientenheter, vanligtvis webbläsare, för att samla in information från användare. Ett interaktivt PDF-formulär baseras på en formulärdesign som vanligtvis sparas som en XDP-fil och skapas i Designer. Från och med AEM Forms kan du skicka ett com.adobe.idp.Document-objekt som innehåller formulärdesignen till tjänsten Forms. Forms-tjänsten återger sedan formulärdesignen i objektet com.adobe.idp.Document.
En fördel med att skicka ett com.adobe.idp.Document-objekt till Forms-tjänsten är att andra tjänståtgärder returnerar en com.adobe.idp.Document-instans. Det innebär att du kan hämta en com.adobe.idp.Document-instans från en annan tjänståtgärd och återge den. Anta till exempel att en XDP-fil lagras i en Content Services-nod (utgått) med namnet /Company Home/Form Designs, vilket visas på följande bild.
Du kan hämta Loan.xdp via programkod från Content Services (utgått) och skicka XDP-filen till Forms-tjänsten i ett com.adobe.idp.Document-objekt.
Sammanfattning av steg summary-of-steps
Gör så här om du vill skicka ett dokument som hämtats från innehållstjänster (borttaget) till Forms-tjänsten:
- Inkludera projektfiler.
- Skapa ett Forms- och ett API-objekt för dokumenthanteringsklienten.
- Hämta formulärdesignen från Content Services (utgått).
- Återge det interaktiva PDF-formuläret.
- Utför en åtgärd med formulärdataströmmen.
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 inkluderar du proxyfilerna.
Skapa ett Forms- och ett API-objekt för dokumenthanteringsklienten
Skapa ett Forms Client API-objekt innan du programmässigt utför en API-åtgärd för Forms-tjänster. Eftersom det här arbetsflödet hämtar en XDP-fil från Content Services (utgått) skapar du också ett API-objekt för dokumenthantering.
Hämta formulärdesignen från Content Services (utgått)
Hämta XDP-filen från Content Services (utgått) med Java- eller webbtjänstens API. XDP-filen returneras i en com.adobe.idp.Document-instans (eller en BLOB-instans om du använder webbtjänster). Du kan sedan skicka com.adobe.idp.Document-instansen till Forms-tjänsten.
Återge ett interaktivt PDF-formulär
Om du vill återge ett interaktivt formulär skickar du com.adobe.idp.Document-instansen som returnerades från Content Services (utgått) till Forms-tjänsten.
com.adobe.idp.Document som innehåller formulärdesignen till Forms-tjänsten. Två nya metoder med namnet renderPDFForm2 och renderHTMLForm2 accepterar ett com.adobe.idp.Document-objekt som innehåller en formulärdesign.Utför en åtgärd med formulärdataströmmen
Beroende på vilken typ av klientprogram du använder kan du skriva formuläret till en webbläsare eller spara formuläret som en PDF-fil. Ett webbaserat program skriver vanligtvis formuläret i webbläsaren. I ett skrivbordsprogram sparas dock formuläret som en PDF-fil.
Se även
Skicka dokument till Forms-tjänsten med Java API pass-documents-to-the-forms-service-using-the-java-api
Skicka ett dokument som hämtats från Content Services (utgått) med hjälp av Forms tjänst och Content Services (utgått) API (Java):
-
Inkludera projektfiler
Inkludera JAR-klientfiler, t.ex. adobe-forms-client.jar och adobe-contentservices-client.jar, i Java-projektets klassökväg.
-
Skapa ett Forms- och ett API-objekt för dokumenthanteringsklienten
- Skapa ett
ServiceClientFactory-objekt som innehåller anslutningsegenskaper. (Se Ange anslutningsegenskaper.) - Skapa ett
FormsServiceClient-objekt med hjälp av dess konstruktor och skickaServiceClientFactory-objektet. - Skapa ett
DocumentManagementServiceClientImpl-objekt med hjälp av dess konstruktor och skickaServiceClientFactory-objektet.
- Skapa ett
-
Hämta formulärdesignen från innehållstjänster (borttagen)
Anropa
DocumentManagementServiceClientImpl-objektetsretrieveContent-metod och skicka följande värden:- Ett strängvärde som anger den lagringsplats där innehållet läggs till. Standardarkivet är
SpacesStore. Detta värde är en obligatorisk parameter. - Ett strängvärde som anger den fullständigt kvalificerade sökvägen för innehållet som ska hämtas (till exempel
/Company Home/Form Designs/Loan.xdp). Detta värde är en obligatorisk parameter. - Ett strängvärde som anger versionen. Det här värdet är en valfri parameter och du kan skicka en tom sträng. I det här fallet hämtas den senaste versionen.
Metoden
retrieveContentreturnerar ettCRCResult-objekt som innehåller XDP-filen. Hämta encom.adobe.idp.Document-instans genom att anropaCRCResult-objektetsgetDocument-metod. - Ett strängvärde som anger den lagringsplats där innehållet läggs till. Standardarkivet är
-
Återge ett interaktivt PDF-formulär
Anropa
FormsServiceClient-objektetsrenderPDFForm2-metod och skicka följande värden:- Ett
com.adobe.idp.Document-objekt som innehåller formulärdesignen som hämtats från innehållstjänster (borttagen). - Ett
com.adobe.idp.Document-objekt som innehåller data som ska sammanfogas med formuläret. Om du inte vill sammanfoga data skickar du ett tomtcom.adobe.idp.Document-objekt. - Ett
PDFFormRenderSpec-objekt som lagrar körningsalternativ. Det här värdet är en valfri parameter, och du kan angenullom du inte vill ange körningsalternativ. - A
URLSpecobject that contains URI values. Det här värdet är en valfri parameter och du kan angenull. - Ett
java.util.HashMap-objekt som lagrar bifogade filer. Det här värdet är en valfri parameter och du kan angenullom du inte vill bifoga filer till formuläret.
Metoden
renderPDFFormreturnerar ettFormsResult-objekt som innehåller en formulärdataström som måste skrivas till klientens webbläsare. - Ett
-
Utför en åtgärd med formulärdataströmmen
- Skapa ett
com.adobe.idp.Document-objekt genom att anropaFormsResult-objektetsgetOutputContent-metod. - Hämta innehållstypen för objektet
com.adobe.idp.Documentgenom att anropa dessgetContentType-metod. - Ange innehållstypen för objektet
javax.servlet.http.HttpServletResponsegenom att anropa desssetContentType-metod och skicka innehållstypen för objektetcom.adobe.idp.Document. - 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 ett
java.io.InputStream-objekt genom att anropacom.adobe.idp.Document-objektetsgetInputStream-metod. - Skapa en bytearray och fyll i den med formulärdataströmmen genom att anropa
InputStream-objektetsread-metod. 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.
- Skapa ett
Se även
Snabbstart (SOAP): skicka dokument till Forms-tjänsten med Java API
Skicka dokument till Forms-tjänsten med hjälp av API:t för webbtjänsten pass-documents-to-the-forms-service-using-the-web-service-api
Skicka ett dokument som hämtats från Content Services (utgått) med hjälp av API:t för Forms-tjänsten och innehållstjänster (utgått) (webbtjänsten):
-
Inkludera projektfiler
Skapa ett Microsoft .NET-projekt som använder MTOM. Eftersom klientprogrammet anropar två AEM Forms-tjänster skapar du två tjänstreferenser. Använd följande WSDL-definition för den tjänstreferens som är associerad med Forms-tjänsten:
http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1.Använd följande WSDL-definition för den tjänstreferens som är associerad med dokumenthanteringstjänsten:
http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1.Eftersom datatypen
BLOBär gemensam för båda tjänstreferenserna kan du kvalificera datatypenBLOBfullständigt när du använder den. I motsvarande snabbstart för webbtjänsten är allaBLOBinstanser kvalificerade.note note NOTE Ersätt localhostmed IP-adressen för servern som är värd för AEM Forms. -
Skapa ett Forms- och ett API-objekt för dokumenthanteringsklienten
-
Skapa ett
FormsServiceClient-objekt med hjälp av dess standardkonstruktor. -
Skapa ett
FormsServiceClient.Endpoint.Address-objekt med konstruktornSystem.ServiceModel.EndpointAddress. Skicka ett strängvärde som anger WSDL till AEM Forms-tjänsten (till exempelhttp://localhost:8080/soap/services/FormsService?WSDL). Du behöver inte använda attributetlc_version. Detta attribut används när du skapar en tjänstreferens.) -
Skapa ett
System.ServiceModel.BasicHttpBinding-objekt genom att hämta värdet för fältetFormsServiceClient.Endpoint.Binding. Skicka returvärdet tillBasicHttpBinding. -
Ställ in
System.ServiceModel.BasicHttpBinding-objektetsMessageEncoding-fält tillWSMessageEncoding.Mtom. Detta värde garanterar att MTOM används. -
Aktivera grundläggande HTTP-autentisering genom att utföra följande åtgärder:
- Tilldela användarnamnet för AEM formulär till fältet
FormsServiceClient.ClientCredentials.UserName.UserName. - Tilldela motsvarande lösenordsvärde till fältet
FormsServiceClient.ClientCredentials.UserName.Password. - Tilldela konstantvärdet
HttpClientCredentialType.Basictill fältetBasicHttpBindingSecurity.Transport.ClientCredentialType.
- Tilldela användarnamnet för AEM formulär till fältet
-
Tilldela konstantvärdet
BasicHttpSecurityMode.TransportCredentialOnlytill fältetBasicHttpBindingSecurity.Security.Mode.
note note NOTE Upprepa dessa steg för tjänstklienten DocumentManagementServiceClient. -
-
Hämta formulärdesignen från innehållstjänster (borttagen)
Hämta innehåll genom att anropa
DocumentManagementServiceClient-objektetsretrieveContent-metod och skicka följande värden:- Ett strängvärde som anger den lagringsplats där innehållet läggs till. Standardarkivet är
SpacesStore. Detta värde är en obligatorisk parameter. - Ett strängvärde som anger den fullständigt kvalificerade sökvägen för innehållet som ska hämtas (till exempel
/Company Home/Form Designs/Loan.xdp). Detta värde är en obligatorisk parameter. - Ett strängvärde som anger versionen. Det här värdet är en valfri parameter och du kan skicka en tom sträng. I det här fallet hämtas den senaste versionen.
- En strängutdataparameter som lagrar värdet för bläddringslänken.
- En
BLOB-utdataparameter som lagrar innehållet. Du kan använda den här utdataparametern för att hämta innehållet. - En
ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType-utdataparameter som lagrar innehållsattribut. - En
CRCResult-utdataparameter. I stället för att använda det här objektet kan du använda utdataparameternBLOBför att hämta innehållet.
- Ett strängvärde som anger den lagringsplats där innehållet läggs till. Standardarkivet är
-
Återge ett interaktivt PDF-formulär
Anropa
FormsServiceClient-objektetsrenderPDFForm2-metod och skicka följande värden:- Ett
BLOB-objekt som innehåller formulärdesignen som hämtats från innehållstjänster (borttagen). - Ett
BLOB-objekt som innehåller data som ska sammanfogas med formuläret. Om du inte vill sammanfoga data skickar du ett tomtBLOB-objekt. - Ett
PDFFormRenderSpec-objekt som lagrar körningsalternativ. Det här värdet är en valfri parameter, och du kan angenullom du inte vill ange körningsalternativ. - A
URLSpecobject that contains URI values. Det här värdet är en valfri parameter och du kan angenull. - Ett
Map-objekt som lagrar bifogade filer. Det här värdet är en valfri parameter och du kan angenullom du inte vill bifoga filer till formuläret. - En lång utdataparameter som används för att lagra sidantalet.
- En strängutdataparameter som används för att lagra språkvärdet.
- En
FormsResult-utdataparameter som används för att lagra det interaktiva PDF-formuläret.
Metoden
renderPDFForm2returnerar ettFormsResult-objekt som innehåller det interaktiva PDF-formuläret. - Ett
-
Utför en åtgärd med formulärdataströmmen
- Skapa ett
BLOB-objekt som innehåller formulärdata genom att hämta värdet förFormsResult-objektetsoutputContent-fält. - Skapa ett
System.IO.FileStream-objekt genom att anropa dess konstruktor. Skicka ett strängvärde som representerar filplatsen för det interaktiva PDF-dokumentet och läget som filen ska öppnas i. - Skapa en bytearray som lagrar innehållet i objektet
BLOBsom hämtats från objektetFormsResult. Fyll i bytearrayen genom att hämta värdet förBLOB-objektetsMTOM-datamedlem. - Skapa ett
System.IO.BinaryWriter-objekt genom att anropa dess konstruktor och skickaSystem.IO.FileStream-objektet. - Skriv bytearrayens innehåll till en PDF-fil genom att anropa
System.IO.BinaryWriter-objektetsWrite-metod och skicka bytearrayen.
- Skapa ett
Se även