Documenten doorgeven aan de Forms-service passing-documents-to-the-formsservice
de Steekproeven en de voorbeelden in dit document zijn slechts voor AEM Forms op milieu JEE.
De AEM Forms-service geeft interactieve PDF forms weer aan clientapparaten, meestal webbrowsers, om informatie van gebruikers te verzamelen. Een interactief PDF-formulier is gebaseerd op een formulierontwerp dat gewoonlijk als een XDP-bestand wordt opgeslagen en in Designer wordt gemaakt. Vanaf AEM Forms kunt u een com.adobe.idp.Document -object met het formulierontwerp doorgeven aan de Forms-service. De Forms-service geeft het formulierontwerp vervolgens weer in het com.adobe.idp.Document -object.
Een voordeel van het doorgeven van een com.adobe.idp.Document -object aan de Forms-service is dat andere servicebewerkingen een com.adobe.idp.Document -instantie retourneren. U kunt dus een com.adobe.idp.Document -instantie ophalen uit een andere servicebewerking en deze renderen. Stel bijvoorbeeld dat een XDP-bestand wordt opgeslagen in een knooppunt Content Services (afgekeurd) met de naam /Company Home/Form Designs , zoals in de volgende afbeelding wordt getoond.
U kunt Loan.xdp via programmacode ophalen uit Content Services (afgekeurd) (afgekeurd) en het XDP-bestand doorgeven aan de Forms-service binnen een com.adobe.idp.Document -object.
Overzicht van de stappen summary-of-steps
Als u een document dat is verkregen van Content Services (afgekeurd) (afgekeurd) wilt doorgeven aan de Forms-service, voert u de volgende taken uit:
- Inclusief projectbestanden.
- Maak een Forms en een Document Management Client API-object.
- Haal het formulierontwerp op bij Inhoudsservices (afgekeurd).
- Het interactieve PDF-formulier weergeven.
- Voer een handeling uit met de gegevensstroom van het formulier.
omvat projectdossiers
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, neemt u de proxybestanden op.
creeer een Forms en een voorwerp van de Cliënt API van het Beheer van het Document
Voordat u een API-bewerking voor Forms-services programmatisch kunt uitvoeren, maakt u een Forms Client API-object. Omdat met deze workflow een XDP-bestand wordt opgehaald van Content Services (afgekeurd), maakt u ook een Document Management API-object.
wint het vormontwerp van de (Vervangen) Diensten van de Inhoud terug
Haal het XDP-bestand op van Content Services (afgekeurd) met de Java- of webservice-API. Het XDP-bestand wordt geretourneerd binnen een com.adobe.idp.Document -instantie (of een BLOB -instantie als u webservices gebruikt). Vervolgens kunt u de instantie com.adobe.idp.Document doorgeven aan de Forms-service.
geef een interactieve vorm van PDF terug
Als u een interactief formulier wilt genereren, geeft u het exemplaar com.adobe.idp.Document dat door Content Services (afgekeurd) is geretourneerd, door aan de Forms-service.
com.adobe.idp.Document met het formulierontwerp doorgeven aan de Forms-service. Twee nieuwe methoden met de naam renderPDFForm2 en renderHTMLForm2 accepteren een com.adobe.idp.Document -object dat een formulierontwerp bevat.voer een actie met de stroom van vormgegevens uit
Afhankelijk van het type clienttoepassing kunt u het formulier naar een clientwebbrowser schrijven of het formulier opslaan als een PDF-bestand. Een webtoepassing schrijft het formulier doorgaans naar een webbrowser. Een bureaubladtoepassing slaat het formulier echter doorgaans op als een PDF-bestand.
zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Documenten doorgeven aan de Forms-service met de Java API pass-documents-to-the-forms-service-using-the-java-api
Geef een document door dat is verkregen van Content Services (afgekeurd) met de Forms-service en Content Services (afgekeurd) API (Java):
-
Projectbestanden opnemen
Neem JAR-bestanden voor clients, zoals adobe-forms-client.jar en adobe-contentservices-client.jar, op in het klassenpad van uw Java-project.
-
Een Forms en een Document Management Client API-object maken
- Maak een
ServiceClientFactory-object dat verbindingseigenschappen bevat. (Zie Plaatsende verbindingseigenschappen .) - Maak een
FormsServiceClient-object door de constructor ervan te gebruiken en hetServiceClientFactory-object door te geven. - Maak een
DocumentManagementServiceClientImpl-object door de constructor ervan te gebruiken en hetServiceClientFactory-object door te geven.
- Maak een
-
Het formulierontwerp ophalen van Content Services (afgekeurd)
Roep de methode
retrieveContentvan het objectDocumentManagementServiceClientImplaan en geef de volgende waarden door:- Een tekenreekswaarde die de opslaglocatie opgeeft waar de inhoud wordt toegevoegd. De standaardopslag is
SpacesStore. Deze waarde is een verplichte parameter. - Een tekenreekswaarde die het volledig gekwalificeerde pad opgeeft van de inhoud die moet worden opgehaald (bijvoorbeeld
/Company Home/Form Designs/Loan.xdp). Deze waarde is een verplichte parameter. - Een tekenreekswaarde die de versie opgeeft. Deze waarde is een optionele parameter en u kunt een lege tekenreeks doorgeven. In dit geval wordt de laatste versie opgehaald.
De methode
retrieveContentretourneert eenCRCResult-object dat het XDP-bestand bevat. Haal eencom.adobe.idp.Document-instantie op door de methodeCRCResultobjectgetDocumentaan te roepen. - Een tekenreekswaarde die de opslaglocatie opgeeft waar de inhoud wordt toegevoegd. De standaardopslag is
-
Een interactief PDF-formulier renderen
Roep de methode
renderPDFForm2van het objectFormsServiceClientaan en geef de volgende waarden door:- Een
com.adobe.idp.Document-object dat het formulierontwerp bevat dat is opgehaald uit Content Services (afgekeurd). - Een
com.adobe.idp.Document-object dat gegevens bevat die met het formulier moeten worden samengevoegd. Wanneer u geen gegevens wilt samenvoegen, geeft u een leegcom.adobe.idp.Document-object door. - Een
PDFFormRenderSpec-object dat uitvoeringsopties opslaat. Deze waarde is een optionele parameter en u kuntnullopgeven als u geen runtime-opties wilt opgeven. - Een
URLSpec-object dat URI-waarden bevat. Deze waarde is een optionele parameter en u kuntnullopgeven. - Een
java.util.HashMap-object dat bestandsbijlagen opslaat. Deze waarde is een optionele parameter en u kuntnullopgeven als u geen bestanden aan het formulier wilt koppelen.
De methode
renderPDFFormretourneert eenFormsResult-object dat een formuliergegevensstroom bevat die naar de webbrowser van de client moet worden geschreven. - Een
-
Een handeling uitvoeren met de gegevensstroom van het formulier
- Maak een
com.adobe.idp.Document-object door de methodeFormsResultobject 'sgetOutputContentaan te roepen. - Haal het inhoudstype van het object
com.adobe.idp.Documentop door de methodegetContentTypeervan aan te roepen. - Stel het inhoudstype van het
javax.servlet.http.HttpServletResponse-object in door de methodesetContentTypeervan aan te roepen en het inhoudstype van hetcom.adobe.idp.Document-object door te geven. - Maak een
javax.servlet.ServletOutputStream-object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door de methodejavax.servlet.http.HttpServletResponseobjectgetOutputStreamaan te roepen. - Maak een
java.io.InputStream-object door de methodecom.adobe.idp.DocumentobjectgetInputStreamaan te roepen. - Maak een bytearray en vul deze met de formuliergegevensstroom door de methode
readvan het objectInputStreamaan te roepen. Geef de bytearray door als een argument. - Roep de methode
writevan het objectjavax.servlet.ServletOutputStreamaan om de gegevensstroom van het formulier naar de webbrowser van de client te verzenden. Geef de bytearray door aan de methodewrite.
- Maak een
zie ook
Snel starten (SOAP-modus): documenten doorgeven aan de Forms-service met de Java API
Documenten doorgeven aan de Forms-service met de API voor webservices pass-documents-to-the-forms-service-using-the-web-service-api
Geef een document door dat is verkregen van Content Services (afgekeurd) met de Forms-service en Content Services (afgekeurd) API (webservice):
-
Projectbestanden opnemen
Creeer een Microsoft .NET project dat MTOM gebruikt. Omdat deze cliënttoepassing de twee diensten van AEM Forms aanhaalt, creeer twee de dienstverwijzingen. Gebruik de volgende WSDL-definitie voor de serviceverwijzing die aan de Forms-service is gekoppeld:
http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1.Gebruik de volgende WSDL-definitie voor de serviceverwijzing die is gekoppeld aan de Document Management-service:
http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1.Omdat het gegevenstype
BLOBveel wordt gebruikt voor beide serviceverwijzingen, kunt u het gegevenstype vanBLOBvolledig kwalificeren wanneer u het gebruikt. In de bijbehorende webservice quick start zijn alleBLOB-instanties volledig gekwalificeerd.note note NOTE Vervang localhostmet het IP adres van de server die AEM Forms ontvangt. -
Een Forms en een Document Management Client API-object maken
-
Maak een
FormsServiceClient-object met de standaardconstructor. -
Maak een
FormsServiceClient.Endpoint.Address-object met deSystem.ServiceModel.EndpointAddress-constructor. Geef een tekenreekswaarde die de WSDL opgeeft door aan de AEM Forms-service (bijvoorbeeldhttp://localhost:8080/soap/services/FormsService?WSDL). U hoeft het attribuutlc_versionniet te gebruiken. Dit kenmerk wordt gebruikt wanneer u een serviceverwijzing maakt.) -
Maak een
System.ServiceModel.BasicHttpBinding-object door de waarde van hetFormsServiceClient.Endpoint.Binding-veld op te halen. De geretourneerde waarde wordt gecast naarBasicHttpBinding. -
Stel het veld
MessageEncodingvan hetSystem.ServiceModel.BasicHttpBinding-object in opWSMessageEncoding.Mtom. Deze waarde zorgt ervoor dat MTOM wordt gebruikt. -
Laat basisauthentificatie van HTTP door de volgende taken uit te voeren toe:
- Wijs de gebruikersnaam voor AEM-formulieren toe aan het veld
FormsServiceClient.ClientCredentials.UserName.UserName. - Wijs de bijbehorende wachtwoordwaarde toe aan het veld
FormsServiceClient.ClientCredentials.UserName.Password. - Wijs de constante waarde
HttpClientCredentialType.Basictoe aan het veldBasicHttpBindingSecurity.Transport.ClientCredentialType.
- Wijs de gebruikersnaam voor AEM-formulieren toe aan het veld
-
Wijs de constante waarde
BasicHttpSecurityMode.TransportCredentialOnlytoe aan het veldBasicHttpBindingSecurity.Security.Mode.
note note NOTE Herhaal deze stappen voor de DocumentManagementServiceClientde dienstcliënt. -
-
Het formulierontwerp ophalen van Content Services (afgekeurd)
Haal inhoud op door de methode
retrieveContentvan het objectDocumentManagementServiceClientaan te roepen en de volgende waarden door te geven:- Een tekenreekswaarde die de opslaglocatie opgeeft waar de inhoud wordt toegevoegd. De standaardopslag is
SpacesStore. Deze waarde is een verplichte parameter. - Een tekenreekswaarde die het volledig gekwalificeerde pad opgeeft van de inhoud die moet worden opgehaald (bijvoorbeeld
/Company Home/Form Designs/Loan.xdp). Deze waarde is een verplichte parameter. - Een tekenreekswaarde die de versie opgeeft. Deze waarde is een optionele parameter en u kunt een lege tekenreeks doorgeven. In dit geval wordt de laatste versie opgehaald.
- Een parameter van de koordoutput die doorbladert verbindingswaarde opslaat.
- Een
BLOBuitvoerparameter die de inhoud opslaat. U kunt deze uitvoerparameter gebruiken om de inhoud op te halen. - Een
ServiceReference1.MyMapOf_xsd_string_To_xsd_anyTypeuitvoerparameter die inhoudskenmerken opslaat. - Een
CRCResultuitvoerparameter. In plaats van dit object te gebruiken, kunt u de uitvoerparameterBLOBgebruiken om de inhoud op te halen.
- Een tekenreekswaarde die de opslaglocatie opgeeft waar de inhoud wordt toegevoegd. De standaardopslag is
-
Een interactief PDF-formulier renderen
Roep de methode
renderPDFForm2van het objectFormsServiceClientaan en geef de volgende waarden door:- Een
BLOB-object dat het formulierontwerp bevat dat is opgehaald uit Content Services (afgekeurd). - Een
BLOB-object dat gegevens bevat die met het formulier moeten worden samengevoegd. Wanneer u geen gegevens wilt samenvoegen, geeft u een leegBLOB-object door. - Een
PDFFormRenderSpec-object dat uitvoeringsopties opslaat. Deze waarde is een optionele parameter en u kuntnullopgeven als u geen runtime-opties wilt opgeven. - Een
URLSpec-object dat URI-waarden bevat. Deze waarde is een optionele parameter en u kuntnullopgeven. - Een
Map-object dat bestandsbijlagen opslaat. Deze waarde is een optionele parameter en u kuntnullopgeven als u geen bestanden aan het formulier wilt koppelen. - Een lange uitvoerparameter die wordt gebruikt om het aantal pagina's op te slaan.
- Een tekenreeks-uitvoerparameter die wordt gebruikt om de waarde van de landinstelling op te slaan.
- Een
FormsResult-uitvoerparameter die wordt gebruikt om het interactieve PDF-formulier op te slaan.
De methode
renderPDFForm2retourneert eenFormsResult-object dat het interactieve PDF-formulier bevat. - Een
-
Een handeling uitvoeren met de gegevensstroom van het formulier
- Maak een
BLOB-object dat formuliergegevens bevat door de waarde van het veldFormsResultobjectoutputContentop te halen. - Maak een
System.IO.FileStream-object door de constructor ervan aan te roepen. Geef een tekenreekswaarde door die staat voor de bestandslocatie van het interactieve PDF-document en de modus waarin het bestand moet worden geopend. - Maak een bytearray waarin de inhoud wordt opgeslagen van het
BLOB-object dat is opgehaald van hetFormsResult-object. Vul de bytearray met de waarde van het gegevenslidMTOMvan het objectBLOB. - Maak een
System.IO.BinaryWriter-object door de constructor ervan aan te roepen en hetSystem.IO.FileStream-object door te geven. - Schrijf de inhoud van de bytearray naar een PDF-bestand door de methode
Writevan het objectSystem.IO.BinaryWriteraan te roepen en de bytearray door te geven.
- Maak een
zie ook