The following Java web service code example certifies a
PDF document that is based on a PDF file named LoanSig.pdf. The
alias that is specified for the security credential is secure, and
revocation checking is not performed. The certified document is
saved as a PDF file named LoanCertified.pdf. (See Certifying PDF Documents.)
/**
* Ensure that you create Java proxy files that consume
* the Signature services WSDL. You can use JAX-WS to create
* the proxy Java files.
*
* For information, see "Invoking LiveCycle using SwaRef" in Programming with LiveCycle
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.xml.ws.BindingProvider;
import com.adobe.idp.services.*;
public class CertifyDocumentSWAref {
public static void main(String[] args) {
try
{
// Setting configurations to retrieve the Web service
String url = "http://hiro-xp:8080/soap/services/signatureservice?blob=swaRef";
String username = "administrator";
String password = "password";
// Create the service Client objects needed
SignatureServiceService signatureService = new SignatureServiceService();
SignatureService signatureClient = signatureService.getSignatureservice();
// Retrieve the Web services from the LiveCycle server.
((BindingProvider) signatureClient).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
((BindingProvider) signatureClient).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username);
((BindingProvider) signatureClient).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, password);
//Set an input file as a BLOB
String path1 = "C:\\Adobe\LoanSig.pdf";
FileDataSource ds1 = new FileDataSource(path1);
DataHandler handler1 = new DataHandler(ds1);
BLOB inDoc = new BLOB();
inDoc.setSwaRef(handler1);
//Specify the name of the signature field
String fieldName = "SignatureField1";
//Create a Credential object
Credential myCred = new Credential();
myCred.setAlias("secure");
//Specify the reason to sign the document
String reason = "The document was reviewed";
//Specify the location of the signer
String location = "My company";
//Specify contact information
String contactInfo = "New York, New York";
//Create a PDFSignatureAppearanceOptions object and show date information
PDFSignatureAppearanceOptionSpec appear = new PDFSignatureAppearanceOptionSpec();
appear.setShowDate(true);
//Set revocation checking to false
java.lang.Boolean revCheck = new Boolean(false);
//Set locking to false
java.lang.Boolean lockField = new Boolean(false);
//Specify a legalAttestation value
String msg = "Any change to this document will invalidate the certificate";
//Create objects to pass to the certify method
OCSPOptionSpec ocspSpec = new OCSPOptionSpec();
CRLOptionSpec crlSpec = new CRLOptionSpec();
TSPOptionSpec tspSpec = new TSPOptionSpec();
//Certify the PDF document
BLOB signedDoc = signatureClient.certify(
inDoc,
fieldName,
myCred,
HashAlgorithm.SHA_1,
reason,
location,
contactInfo,
MDPPermissions.NO_CHANGES,
msg,
appear,
revCheck,
lockField,
ocspSpec,
crlSpec,
tspSpec);
//Create a new file containing the returned PDF document
File f = new File("C:\\Adobe\LoanCertified.pdf");
BLOB outBlob = signedDoc;
DataHandler handler2 = outBlob.getSwaRef();
//Get an InputStream from DataHandler and
//write to a file
InputStream inputStream = handler2.getInputStream();
OutputStream out = new FileOutputStream(f);
//Iterate through the buffer
byte buf[] = new byte[1024];
int len;
while ((len = inputStream.read(buf)) > 0)
out.write(buf, 0, len);
out.close();
inputStream.close();
}
catch (Exception ee)
{
ee.printStackTrace();
}
}
}
|
|
|