Vous pouvez optimiser la diffusion du contenu PDF et améliorer la capacité du service Forms à gérer la charge réseau en utilisant la fonctionnalité de rendu côté client de Acrobat ou Adobe Reader. Ce processus est connu sous le nom de rendu d’un formulaire au niveau du client. Pour générer un formulaire sur le client, le périphérique client (généralement un navigateur Web) doit utiliser Acrobat 7.0 ou Adobe Reader 7.0 ou une version ultérieure.
Les modifications apportées à un formulaire résultant de l’exécution de script côté serveur ne sont pas répercutées dans un formulaire rendu au client, sauf si le sous-formulaire racine contient l’attribut restoreState
défini sur auto
. Pour plus d’informations sur cet attribut, voir Forms Designer.
Pour plus d’informations sur le service Forms, voir Guide de référence des services pour AEM Forms.
Pour générer un formulaire au niveau du client, effectuez les tâches suivantes :
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, veillez à inclure les fichiers proxy.
Création d’un objet API Client Forms
Avant de pouvoir exécuter par programmation une opération d’API Client de service Forms, vous devez créer un client de service Forms. Si vous utilisez l’API Java, créez un objet FormsServiceClient
. Si vous utilisez l’API du service Web Forms, créez un objet FormsService
.
Définition des options d’exécution du rendu client
Vous devez définir l’option d’exécution de rendu client pour générer un formulaire au niveau du client en définissant l’option d’exécution RenderAtClient
sur true
. Ainsi, le formulaire est remis au périphérique client sur lequel il est rendu. Si RenderAtClient
est auto
(la valeur par défaut), la conception de formulaire détermine si le formulaire est généré au niveau du client. La conception de formulaire doit être une conception de formulaire avec une disposition souple.
Une option d'exécution facultative que vous pouvez définir est l'option SeedPDF
. L’option SeedPDF
combine le conteneur PDF (document PDF initial) avec la conception de formulaire et les données XML. La conception de formulaire et les données XML sont toutes deux remises à Acrobat ou Adobe Reader, où le formulaire est rendu. L'option SeedPDF
peut être utilisée lorsque l'ordinateur client ne dispose pas de polices utilisées dans le formulaire, par exemple lorsqu'un utilisateur final n'est pas autorisé à utiliser une police que le propriétaire du formulaire est autorisé à utiliser.
Designer permet de créer un fichier PDF dynamique simple à utiliser en tant que fichier PDF initial. Pour effectuer cette tâche, procédez comme suit :
Il n’est pas nécessaire de définir l’option d’exécution PDF initiale pour générer un formulaire sur le client. Si vous ne spécifiez pas de PDF initial, le service Forms crée un shell pdf qui ne contiendra pas d’objets COS mais qui contiendra un wrapper PDF avec le contenu XDP réel incorporé à l’intérieur. Les étapes de cette section ne définissent pas l’option d’exécution PDF initiale. Pour plus d’informations sur les objets COS, voir le guide de référence Adobe PDF.
Générer un formulaire au niveau du client
Pour générer un formulaire au niveau du client, vous devez vous assurer que les options d’exécution de rendu client sont incluses dans la logique de votre application pour générer un formulaire.
Ecrire le flux de données du formulaire dans le navigateur Web client
Le service Forms crée un flux de données de formulaire que vous devez écrire dans le navigateur Web client. Lorsqu’il est écrit dans le navigateur Web client, le formulaire est rendu par Acrobat 7.0 ou Adobe Reader 7.0 ou une version ultérieure et est visible par l’utilisateur.
Voir également
Générer un formulaire au niveau du client à l’aide de l’API Java
Générer un formulaire sur le client à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Débuts rapides de l’API du service Forms
Transmission de Documents au service Forms
Création d’Applications web renvoyant Forms
Générer un formulaire sur le client à l’aide de l’API Forms (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-forms-client.jar, dans le chemin de classe de votre projet Java.
Création d’un objet API Client Forms
ServiceClientFactory
qui contient des propriétés de connexion.FormsServiceClient
en utilisant son constructeur et en transmettant l'objet ServiceClientFactory
.Définition des options d’exécution du rendu client
PDFFormRenderSpec
en utilisant son constructeur.RenderAtClient
en appelant la méthode PDFFormRenderSpec
de l’objet setRenderAtClient
et en transmettant la valeur d’énumération RenderAtClient.Yes
.Générer un formulaire au niveau du client
Appelez la méthode renderPDFForm
de l’objet FormsServiceClient
et transmettez les valeurs suivantes :
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.com.adobe.idp.Document
contenant les données à fusionner avec le formulaire. Si vous ne souhaitez pas fusionner de données, transmettez un objet com.adobe.idp.Document
vide.PDFFormRenderSpec
qui stocke les options d’exécution requises pour générer un formulaire au niveau du client.URLSpec
contenant des valeurs URI requises par le service Forms pour générer un formulaire.java.util.HashMap
qui stocke les pièces jointes. Il s’agit d’un paramètre facultatif et vous pouvez spécifier null
si vous ne souhaitez pas joindre de fichiers au formulaire.La méthode renderPDFForm
renvoie un objet FormsResult
contenant un flux de données de formulaire qui doit être écrit dans le navigateur Web client.
Ecrire le flux de données du formulaire dans le navigateur Web client
com.adobe.idp.Document
en appelant la méthode FormsResult
de l'objet "s getOutputContent
.com.adobe.idp.Document
en appelant sa méthode getContentType
.javax.servlet.http.HttpServletResponse
en appelant sa méthode setContentType
et en transmettant le type de contenu de l'objet com.adobe.idp.Document
.javax.servlet.ServletOutputStream
utilisé pour écrire le flux de données du formulaire dans le navigateur Web client en appelant la méthode javax.servlet.http.HttpServletResponse
de l’objet getOutputStream
.java.io.InputStream
en appelant la méthode com.adobe.idp.Document
de l'objet getInputStream
.InputStream
de l’objet read
et en transmettant le tableau d’octets comme argument.javax.servlet.ServletOutputStream
de l’objet write
pour envoyer le flux de données de formulaire au navigateur Web client. Transférez le tableau d’octets à la méthode write
.Voir également
Début rapide (mode SOAP) : Rendu d’un formulaire sur le client à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Générer un formulaire sur le client à l’aide de l’API Forms (service Web) :
Inclure les fichiers de projet
Création d’un objet API Client Forms
Créez un objet FormsService
et définissez des valeurs d’authentification.
Définition des options d’exécution du rendu client
PDFFormRenderSpec
en utilisant son constructeur.RenderAtClient
en appelant la méthode PDFFormRenderSpec
de l’objet setRenderAtClient
et en transmettant la valeur de chaîne RenderAtClient.Yes
.Générer un formulaire au niveau du client
Appelez la méthode renderPDFForm
de l’objet FormsService
et transmettez les valeurs suivantes :
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.BLOB
contenant les données à fusionner avec le formulaire. Si vous ne souhaitez pas fusionner les données, transmettez null
. (Voir Préremplissage de Forms avec des dispositions souple.)PDFFormRenderSpec
qui stocke les options d’exécution requises pour générer un formulaire au niveau du client.URLSpec
contenant des valeurs URI requises par le service Forms.java.util.HashMap
qui stocke les pièces jointes. Il s’agit d’un paramètre facultatif et vous pouvez spécifier null
si vous ne souhaitez pas joindre de fichiers au formulaire.com.adobe.idp.services.holders.BLOBHolder
vide renseigné par la méthode. Ce paramètre est utilisé pour stocker le formulaire PDF rendu.javax.xml.rpc.holders.LongHolder
vide renseigné par la méthode. (Cet argument stocke le nombre de pages dans le formulaire).javax.xml.rpc.holders.StringHolder
vide renseigné par la méthode. (Cet argument stocke la valeur du paramètre régional).com.adobe.idp.services.holders.FormsResultHolder
vide qui contiendra les résultats de cette opération.La méthode renderPDFForm
remplit l’objet com.adobe.idp.services.holders.FormsResultHolder
transmis en tant que valeur du dernier argument avec un flux de données de formulaire qui doit être écrit dans le navigateur Web client.
Ecrire le flux de données du formulaire dans le navigateur Web client
FormResult
en obtenant la valeur du membre de données com.adobe.idp.services.holders.FormsResultHolder
de l'objet value
.BLOB
contenant des données de formulaire en appelant la méthode FormsResult
de l'objet getOutputContent
.BLOB
en appelant sa méthode getContentType
.javax.servlet.http.HttpServletResponse
en appelant sa méthode setContentType
et en transmettant le type de contenu de l'objet BLOB
.javax.servlet.ServletOutputStream
utilisé pour écrire le flux de données du formulaire dans le navigateur Web client en appelant la méthode javax.servlet.http.HttpServletResponse
de l’objet getOutputStream
.BLOB
de l’objet getBinaryData
. Cette tâche affecte le contenu de l'objet FormsResult
au tableau d'octets.javax.servlet.http.HttpServletResponse
de l’objet write
pour envoyer le flux de données de formulaire au navigateur Web client. Transférez le tableau d’octets à la méthode write
.Voir également
Appel de AEM Forms à l’aide du codage Base64