Digital signatures appear in signature fields, which are
form fields that contain a graphic representation of the signature.
Signature fields can be visible or invisible. Signers can use a
preexisting signature field, or a signature field can be programmatically
added. In either case, the signature field must exist before a PDF
document can be signed.
You can programmatically add a signature field by using the Signature
service Java API or Signature web service API. You can add more
than one signature field to a PDF document; however, each signature
field name must be unique.
注意: Some PDF document types do not let you programmatically
add a signature field. For more information about the Signature
service and adding signature fields, see Services Reference for LiveCycle.
Summary of stepsTo add a signature field to a PDF document, perform the
following tasks:
Include project files.
Create a Signature client.
Get a PDF document to which a signature field is added.
Add a signature field.
Save the PDF document as a PDF file.
Include project filesInclude 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)
Create a Signature clientBefore you can programmatically perform
a Signature service operation, you must create a Signature service
client.
Get a PDF document to which a signature field is addedYou
must obtain a PDF document to which a signature field is added.
Add a signature fieldTo successfully add a signature field
to a PDF document, you specify coordinate values that identify the
location of the signature field. (If you add an invisible signature
field, these values are not required.) Also, you can specify which
fields in the PDF document are locked after a signature is applied
to the signature field.
Save the PDF document as a PDF fileAfter the Signature service
adds a signature field to the PDF document, you can save the document
as a PDF file so that users can open it in Acrobat or Adobe Reader.
Add signature fields using the Java APIAdd a signature field by using the Signature API (Java):
Include project files
Include client JAR files,
such as adobe-signatures-client.jar, in your Java project’s classpath.
Create a Signature client
Get a PDF document to which a signature field is added
Create a java.io.FileInputStream object
that represents the PDF document to which a signature field is added
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.
Add a signature field
Create a PositionRectangle object
that specifies the signature field location by using its constructor.
Within the constructor, specify coordinate values.
If desired, create a FieldMDPOptions object
that specifies the fields that are locked when a digital signature
is applied to the signature field.
Add a signature field to a PDF document by invoking the SignatureServiceClient object’s addSignatureField method and
passing the following values:
A com.adobe.idp.Document object
that represents the PDF document to which a signature field is added.
A string value that specifies the name of the signature field.
A java.lang.Integer value that represents
the page number to which a signature field is added.
A PositionRectangle object that specifies
the location of the signature field.
A FieldMDPOptions object that specifies
fields in the PDF document that are locked after a digital signature
is applied to the signature field. This parameter value is optional,
and you can pass null.
A PDFSeedValueOptions object that specifies
various run-time values. This parameter value is optional, and you
can pass null.
The addSignatureField method
returns a com.adobe.idp.Document object
that represents a PDF document that contains a signature field.
注意: You can invoke the SignatureServiceClient object’s addInvisibleSignatureField method
to add an invisible signature field.
Save the PDF document as a PDF file
Create
a java.io.File object and ensure that the file
extension is .pdf.
Invoke the com.adobe.idp.Document object’s copyToFile method to
copy the contents of the Document object to the
file. Ensure that you use the com.adobe.idp.Document object
that was returned by the addSignatureField method.
Add signature fields using the web service APITo add a signature field by 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.
注意: 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 LiveCycle 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 a PDF document to which a signature field is added
Create a BLOB object by using its constructor.
The BLOB object is used to store the PDF document
that will contain a signature field.
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 property
with the contents of the byte array.
Add a signature field
Add a signature field to the
PDF document by invoking the SignatureServiceClient object’s addSignatureField method and
passing the following values:
A BLOB object
that represents the PDF document to which a signature field is added.
A string value that specifies the signature field name.
An integer value that represents the page number to which
a signature field is added.
A PositionRect object that specifies the
location of the signature field.
A FieldMDPOptions object that specifies
fields in the PDF document that are locked after a digital signature
is applied to the signature field. This parameter value is optional,
and you can pass null.
A PDFSeedValueOptions object that specifies
various run-time values. This parameter value is optional, and you
can pass null.
The addSignatureField method
returns a BLOB object that represents a PDF document
that contains a signature field.
Save the PDF document as a PDF file
Create
a System.IO.FileStream object by invoking its constructor and
passing a string value that represents the file location of the
PDF document that will contain the signature field and the mode
in which to open the file.
Create a byte array that stores the content of the BLOB object
that was returned by the addSignatureField method.
Populate the byte array by getting the value of the BLOB object’s binaryData data
member.
Create a System.IO.BinaryWriter object by
invoking its constructor and passing the System.IO.FileStream object.
Write the contents of the byte array to a PDF file by invoking
the System.IO.BinaryWriter object’s Write method
and passing the byte array.
|
|
|