You can retrieve the names of all signature fields that
are located in a PDF document that you want to sign or certify.
If you are unsure of the signature field names that are located
in a PDF document or you want to verify the names, you can programmatically
retrieve them. The Signature service returns the fully qualified
name of the signature field, such as
form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Summary of steps
To retrieve signature field names,
perform the following tasks:
-
Include project files.
-
Create a Signature client.
-
Get the PDF document that contains signature fields.
-
Retrieve the signature field names.
Include project files
Include necessary files into your development
project. If you are creating a client application using Java, include
the necessary JAR files. If you are using web services, ensure that
you include the proxy files.
The following JAR files must
be added to your project’s classpath:
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
-
adobe-signatures-client.jar
-
adobe-utilities.jar (required if LiveCycle is deployed
on JBoss)
-
jbossall-client.jar (required if LiveCycle is deployed
on JBoss)
For information about the location of
these JAR files, see
Including LiveCycle Java library files
.
Create a Signature client
Before you can programmatically perform
a Signature service operation, you must create a Signature service
client.
Get the PDF document that contains signature fields
Retrieve
a PDF document that contains signature fields.
Retrieve the signature field names
You can retrieve signature field
names after you retrieve a PDF document that contains one or more
signature fields.
Retrieve signature field names using the Java API
Retrieve signature field names by using the Signature API (Java):
-
Include project files
Include client JAR files,
such as the adobe-signatures-client.jar, in your Java project’s
classpath.
-
Create a Signature client
-
Get the PDF document that contains signature fields
-
Create a
java.io.FileInputStream
object
that represents the PDF document that contains signature fields
by using its constructor and passing a string value that specifies
the location of the PDF document.
-
Create a
com.adobe.idp.Document
object by
using its constructor and passing the
java.io.FileInputStream
object.
-
Retrieve the signature field names
-
Retrieve
the signature field names by invoking the
SignatureServiceClient
object’s
getSignatureFieldList
method
and passing the
com.adobe.idp.Document
object that contains
the PDF document that contains signature fields. This method returns
a
java.util.List
object, in which each element
contains a
PDFSignatureField
object. Using this
object, you can obtain additional information about a signature field,
such as whether it is visible.
-
Iterate through the
java.util.List
object
to determine if there are signature field names. For each signature field
in the PDF document, you can obtain a separate
PDFSignatureField
object.
To obtain the name of the signature field, invoke the
PDFSignatureField
object’s
getName
method.
This method returns a string value that specifies the signature
field name.
Retrieve signature field using the web service API
Retrieve signature field names using the Signature API
(web service):
-
Include project files
Create a Microsoft .NET
project that uses MTOM. Ensure that you use the following WSDL definition:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Note:
Replace
localhost
with the IP
address of the server hosting LiveCycle.
-
Create a Signature client
-
Create a
SignatureServiceClient
object
by using its default constructor.
-
Create a
SignatureServiceClient.Endpoint.Address
object
by using the
System.ServiceModel.EndpointAddress
constructor.
Pass a string value that specifies the WSDL to the LiveCycle service (for example,
http://localhost:8080/soap/services/SignatureService?WSDL
).
You do not need to use the
lc_version
attribute.
This attribute is used when you create a service reference.)
-
Create a
System.ServiceModel.BasicHttpBinding
object
by getting the value of the
SignatureServiceClient.Endpoint.Binding
field.
Cast the return value to
BasicHttpBinding
.
-
Set the
System.ServiceModel.BasicHttpBinding
object’s
MessageEncoding
field
to
WSMessageEncoding.Mtom
. This value ensures that
MTOM is used.
-
Enable basic HTTP authentication by performing the following tasks:
-
Assign the AEM forms user name to the field
SignatureServiceClient.ClientCredentials.UserName.UserName
.
-
Assign the corresponding password value to the field
SignatureServiceClient.ClientCredentials.UserName.Password
.
-
Assign the constant value
HttpClientCredentialType.Basic
to
the field
BasicHttpBindingSecurity.Transport.ClientCredentialType
.
-
Assign the constant value
BasicHttpSecurityMode.TransportCredentialOnly
to
the field
BasicHttpBindingSecurity.Security.Mode
.
-
Get the PDF document that contains signature fields
-
Create a
BLOB
object by using its constructor.
The
BLOB
object is used to store the PDF document
that contains signature fields.
-
Create a
System.IO.FileStream
object by
invoking its constructor and passing a string value that represents the
file location of the PDF document and the mode in which to open
the file.
-
Create a byte array that stores the content of the
System.IO.FileStream
object.
You can determine the size of the byte array by getting the
System.IO.FileStream
object’s
Length
property.
-
Populate the byte array with stream data by invoking the
System.IO.FileStream
object’s
Read
method
and passing the byte array, the starting position, and the stream
length to read.
-
Populate the
BLOB
object by assigning its
MTOM
field
the byte array contents.
-
Retrieve the signature field names
-
Retrieve
the signature field names by invoking
SignatureServiceClient
object’s
getSignatureFieldList
method
and passing the
BLOB
object that contains the PDF
document that contains signature fields. This method returns a
MyArrayOfPDFSignatureField
collection object
where each element contains a
PDFSignatureField
object.
-
Iterate through the
MyArrayOfPDFSignatureField
object
to determine whether there are signature field names. For each signature
field in the PDF document, you can obtain a
PDFSignatureField
object.
To obtain the name of the signature field, invoke the
PDFSignatureField
object’s
getName
method.
This method returns a string value that specifies the signature
field name.
|
|
|