Transmettre des documents au service Forms passing-documents-to-the-formsservice
Les exemples et les échantillons de ce document sont réservés à l’environnement AEM Forms sur JEE.
Le service AEM Forms effectue le rendu de PDF forms interactifs sur les appareils clients, généralement des navigateurs Web, afin de collecter des informations auprès des utilisateurs. Un formulaire PDF interactif est basé sur une conception de formulaire généralement enregistrée sous forme de fichier XDP et créée dans Designer. À partir d’AEM Forms, vous pouvez transmettre au service Forms un objet com.adobe.idp.Document qui contient la conception du formulaire. Le service Forms effectue ensuite le rendu de la conception du formulaire située dans l’objet com.adobe.idp.Document.
L’avantage de transmettre un objet com.adobe.idp.Document au service Forms est que les autres opérations du service renvoient une instance com.adobe.idp.Document. En d’autres termes, vous pouvez obtenir une instance com.adobe.idp.Document à partir d’une autre opération de service et en effectuer le rendu. Par exemple, supposons qu’un fichier XDP soit stocké dans un nœud de Content Services (obsolète) appelé /Company Home/Form Designs, comme illustré ci-dessous.
Vous pouvez récupérer Loan.xdp par programmation à partir de Content Services (obsolète) (obsolète) et transmettre le fichier XDP au service Forms dans un objet com.adobe.idp.Document.
Résumé des étapes summary-of-steps
Pour transmettre un document obtenu à partir de Content Services (obsolète) au service Forms, effectuez les tâches suivantes :
- Incluez les fichiers de projet.
- Créez un objet Forms et un objet API Client de Document Management.
- Récupérez la conception de formulaire auprès de Content Services (obsolète).
- Effectuez le rendu du formulaire PDF interactif.
- Exécutez une action avec le flux de données de formulaire.
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services web, incluez les fichiers proxy.
Créer un objet API Client Forms et un objet API Client Document Management
Avant d’effectuer par programmation une opération d’API de service Forms, créez un objet API client Forms. En outre, comme ce workflow récupère un fichier XDP de Content Services (obsolète), créez un objet API Document Management.
Récupérer la conception de formulaire à partir de Content Services (obsolète)
Récupérez le fichier XDP à partir de Content Services (obsolète) à l’aide de l’API Java ou de service web. Le fichier XDP est renvoyé dans une instance com.adobe.idp.Document (ou une instance BLOB si vous utilisez des services Web). Vous pouvez ensuite transmettre l’instance com.adobe.idp.Document au service Forms.
Effectuer le rendu d’un formulaire PDF interactif
Pour effectuer le rendu d’un formulaire interactif, transmettez l’instance com.adobe.idp.Document renvoyée par Content Services (obsolète) au service Forms.
com.adobe.idp.Document qui contient la conception du formulaire. Deux nouvelles méthodes appelées renderPDFForm2 et renderHTMLForm2 acceptent un objet com.adobe.idp.Document qui contient une conception de formulaire.Exécuter une action avec le flux de données du formulaire
Selon le type d’application client, vous pouvez écrire le formulaire dans le navigateur Web du client ou l’enregistrer comme fichier PDF. En règle générale, une application Web écrit le formulaire dans le navigateur Web. Cependant, une application de bureau enregistre généralement le formulaire sous forme de fichier PDF.
Voir également
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Transmettre des documents au service Forms à l’aide de l’API Java pass-documents-to-the-forms-service-using-the-java-api
Transmettez un document obtenu à partir de Content Services (obsolète) à l’aide du service Forms et de l’API Content Services (obsolète) (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers JAR du client, tels que adobe-forms-client.jar et adobe-contentservices-client.jar, dans le chemin d’accès aux classes de votre projet Java.
-
Créer un objet API Client Forms et un objet API Client Document Management
- Créez un objet
ServiceClientFactoryqui contient des propriétés de connexion. (Voir Réglage des propriétés de la connexion.) - Créez un objet
FormsServiceClienten utilisant son constructeur et en transmettant l’objetServiceClientFactory. - Créez un objet
DocumentManagementServiceClientImplen utilisant son constructeur et en transmettant l’objetServiceClientFactory.
- Créez un objet
-
Récupérer la conception du formulaire à partir de Content Services (obsolète)
Appelez la méthode
retrieveContentde l’objetDocumentManagementServiceClientImplet transmettez les valeurs suivantes :- Valeur string qui spécifie le magasin où le contenu est ajouté. Le magasin par défaut est
SpacesStore. Cette valeur est un paramètre obligatoire. - Valeur string qui spécifie le chemin d’accès complet du contenu à récupérer (par exemple
/Company Home/Form Designs/Loan.xdp). Cette valeur est un paramètre obligatoire. - Valeur string qui spécifie la version. Cette valeur est un paramètre facultatif et vous pouvez transmettre une chaîne vide. Dans ce cas, la dernière version est récupérée.
La méthode
retrieveContentrenvoie un objetCRCResultqui contient le fichier XDP. Obtenez une instancecom.adobe.idp.Documenten appelant la méthodegetDocumentde l’objetCRCResult. - Valeur string qui spécifie le magasin où le contenu est ajouté. Le magasin par défaut est
-
Effectuer le rendu d’un formulaire PDF interactif
Appelez la méthode
renderPDFForm2de l’objetFormsServiceClientet transmettez les valeurs suivantes :- Un objet
com.adobe.idp.Documentcontenant la conception du formulaire récupéré à partir de Content Services (obsolète). - Un objet
com.adobe.idp.Documentqui contient les données à fusionner avec le formulaire. Si vous ne souhaitez pas fusionner des données, transmettez un objetcom.adobe.idp.Document. - Un objet
PDFFormRenderSpecqui stocke les options d’exécution. Cette valeur est un paramètre facultatif. Vous pouvez indiquernullsi vous ne souhaitez pas spécifier d’options d’exécution. - Un objet
URLSpecqui contient des valeurs URI. Cette valeur est un paramètre facultatif. Vous pouvez spécifiernull. - Un objet
java.util.HashMapqui stocke les pièces jointes. Cette valeur est un paramètre facultatif. Vous pouvez spécifiernullsi vous ne souhaitez pas joindre de fichiers au formulaire.
La méthode
renderPDFFormrenvoie un objetFormsResultqui contient un flux de données de formulaire qui doit être écrit dans le navigateur Web du client. - Un objet
-
Effectuer une action avec le flux de données du formulaire
- Créez un objet
com.adobe.idp.Documenten appelant la méthodegetOutputContentde l’objetFormsResult. - Accédez au type de contenu de l’objet
com.adobe.idp.Documenten appelant sa méthodegetContentType. - Définissez le type de contenu de l’objet
javax.servlet.http.HttpServletResponseen appelant sa méthodesetContentTypeet en transmettant le type de contenu de l’objetcom.adobe.idp.Document. - Créez un objet
javax.servlet.ServletOutputStreamutilisé pour écrire le flux de données de formulaire dans le navigateur web client en appelant la méthodegetOutputStreamde l’objetjavax.servlet.http.HttpServletResponse. - Créez un objet
java.io.InputStreamen appelant la méthodegetInputStreamde l’objetcom.adobe.idp.Document. - Créez un tableau d’octets et renseignez-le avec le flux de données du formulaire en appelant la méthode
readde l’objetInputStream. Transmettez le tableau d’octets comme argument. - Appelez la méthode
writede l’objetjavax.servlet.ServletOutputStreampour envoyer le flux de données du formulaire au navigateur Web du client. Transmettez le tableau d’octets à la méthodewrite.
- Créez un objet
Voir également
Démarrage rapide (mode SOAP) : transmettre des documents au service Forms à l’aide de l’API Java
Transmettre des documents au service Forms à l’aide de l’API du service web pass-documents-to-the-forms-service-using-the-web-service-api
Transmettez un document obtenu à partir de Content Services (obsolète) en utilisant le service Forms et de l’API (service Web) de Content Services (obsolète) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Étant donné que cette application cliente appelle deux services AEM Forms, créez deux références de service. Utilisez la définition WSDL suivante pour la référence de service associée au service Forms :
http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1.Utilisez la définition WSDL suivante pour la référence de service associée au service Document Management :
http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1.Étant donné que le type de données
BLOBest commun aux deux références de service, il qualifie entièrement le type de donnéesBLOBlors de son utilisation. Dans le démarrage rapide du service web correspondant, toutes les instancesBLOBsont entièrement qualifiées.note note NOTE Remplacez localhostpar l’adresse IP du serveur hébergeant AEM Forms. -
Créer un objet API Client Forms et un objet API Client Document Management
-
Créez un objet
FormsServiceClienten utilisant son constructeur par défaut. -
Créez un objet
FormsServiceClient.Endpoint.Addressen utilisant le constructeurSystem.ServiceModel.EndpointAddress. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple,http://localhost:8080/soap/services/FormsService?WSDL). Vous n’avez pas besoin d’utiliser l’attributlc_version. Cet attribut est utilisé lorsque vous créez une référence de service.) -
Créez un objet
System.ServiceModel.BasicHttpBindingen obtenant la valeur du champFormsServiceClient.Endpoint.Binding. Convertissez la valeur de retour enBasicHttpBinding. -
Définissez le champ
MessageEncodingde l’objetSystem.ServiceModel.BasicHttpBindingsurWSMessageEncoding.Mtom. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
FormsServiceClient.ClientCredentials.UserName.UserName. - Attribuez la valeur de mot de passe correspondante au champ
FormsServiceClient.ClientCredentials.UserName.Password. - Attribuez la valeur constante
HttpClientCredentialType.Basicau champBasicHttpBindingSecurity.Transport.ClientCredentialType.
- Attribuez le nom d’utilisateur AEM forms au champ
-
Attribuez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnlyau champBasicHttpBindingSecurity.Security.Mode.
note note NOTE Répétez ces étapes pour le client de service DocumentManagementServiceClient. -
-
Récupérer la conception du formulaire à partir de Content Services (obsolète)
Récupérez le contenu en appelant la méthode
retrieveContentde l’objetDocumentManagementServiceClientet en transmettant les valeurs suivantes :- Valeur string qui spécifie le magasin où le contenu est ajouté. Le magasin par défaut est
SpacesStore. Cette valeur est un paramètre obligatoire. - Valeur string qui spécifie le chemin d’accès complet du contenu à récupérer (par exemple
/Company Home/Form Designs/Loan.xdp). Cette valeur est un paramètre obligatoire. - Valeur string qui spécifie la version. Cette valeur est un paramètre facultatif et vous pouvez transmettre une chaîne vide. Dans ce cas, la dernière version est récupérée.
- Paramètre de sortie string qui stocke la valeur du lien de navigation.
- Paramètre de sortie
BLOBstockant le contenu. Vous pouvez utiliser ce paramètre de sortie pour récupérer le contenu. - Paramètre de sortie
ServiceReference1.MyMapOf_xsd_string_To_xsd_anyTypestockant les attributs de contenu. - Un paramètre de sortie
CRCResult. Au lieu d’utiliser cet objet, vous pouvez utiliser le paramètre de sortieBLOBpour obtenir le contenu.
- Valeur string qui spécifie le magasin où le contenu est ajouté. Le magasin par défaut est
-
Effectuer le rendu d’un formulaire PDF interactif
Appelez la méthode
renderPDFForm2de l’objetFormsServiceClientet transmettez les valeurs suivantes :- Un objet
BLOBcontenant la conception du formulaire récupéré à partir de Content Services (obsolète). - Un objet
BLOBqui contient les données à fusionner avec le formulaire. Si vous ne souhaitez pas fusionner des données, transmettez un objetBLOB. - Un objet
PDFFormRenderSpecqui stocke les options d’exécution. Cette valeur est un paramètre facultatif. Vous pouvez indiquernullsi vous ne souhaitez pas spécifier d’options d’exécution. - Un objet
URLSpecqui contient des valeurs URI. Cette valeur est un paramètre facultatif. Vous pouvez spécifiernull. - Un objet
Mapqui stocke les pièces jointes. Cette valeur est un paramètre facultatif. Vous pouvez spécifiernullsi vous ne souhaitez pas joindre de fichiers au formulaire. - Un paramètre de sortie long qui est utilisé pour stocker le nombre de pages.
- Un paramètre de sortie de chaîne qui est utilisé pour stocker la valeur des paramètres régionaux.
- Un paramètre de sortie
FormsResultqui est utilisé pour stocker le formulaire PDF interactif..
La méthode
renderPDFForm2renvoie un objetFormsResultqui contient le formulaire PDF interactif. - Un objet
-
Effectuer une action avec le flux de données du formulaire
- Créez un objet
BLOBqui contient des données de formulaire en obtenant la valeur du champoutputContentde l’objetFormsResult. - Créez un objet
System.IO.FileStreamen utilisant son constructeur. Transmettez une valeur string qui représente l’emplacement du fichier du document PDF interactif et le mode d’ouverture du fichier. - Créez un tableau d’octets qui stocke le contenu de l’objet
BLOBrécupéré dans l’objetFormsResult. Renseignez le tableau d’octets en obtenant la valeur du membre de donnéesMTOMde l’objetBLOB. - Créez un objet
System.IO.BinaryWriteren utilisant son constructeur et en transmettant l’objetSystem.IO.FileStream. - Écrivez le contenu du tableau d’octets dans un fichier PDF en appelant la méthode
Writede l’objetSystem.IO.BinaryWriteret en transmettant le tableau d’octets.
- Créez un objet
Voir également
Appeler AEM Forms en utilisant MTOM