The following C# 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 a .NET project that uses
* MS Visual Studio 2008 and version 3.5 of the .NET
* framework. This is required to invoke a
* LiveCycle service using MTOM.
*
* For information, see "Invoking LiveCycle using MTOM" in Programming with LiveCycle
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.IO;
using CertifyDocument.ServiceReference1;
namespace CertifyDocument
{
class Program
{
static void Main(string[] args)
{
try
{
//Create a SignatureServiceClient object
SignatureServiceClient sigClient = new SignatureServiceClient();
sigClient.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://hiro-xp:8080/soap/services/SignatureService?blob=mtom");
//Enable BASIC HTTP authentication
BasicHttpBinding b = (BasicHttpBinding)sigClient.Endpoint.Binding;
b.MessageEncoding = WSMessageEncoding.Mtom;
sigClient.ClientCredentials.UserName.UserName = "administrator";
sigClient.ClientCredentials.UserName.Password = "password";
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
b.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
b.MaxReceivedMessageSize = 2000000;
b.MaxBufferSize = 2000000;
b.ReaderQuotas.MaxArrayLength = 2000000;
//Create a BLOB to store a PDF document to certify
BLOB inDoc = new BLOB();
//Specify a PDF document to certify
string path = "C:\\Adobe\LoanSig.pdf";
FileStream fs = new FileStream(path, FileMode.Open);
//Get the length of the file stream
int len = (int)fs.Length;
byte[] ByteArray = new byte[len];
//Populate the byte array with the contents of the FileStream object
fs.Read(ByteArray, 0, len);
inDoc.MTOM = ByteArray;
//Specify the name of the signature field
String fieldName = "SignatureField1";
//Create a Credential object
Credential myCred = new Credential();
myCred.alias = "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.showDate = true;
//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 = sigClient.certify(
inDoc,
fieldName,
myCred,
HashAlgorithm.SHA1,
reason,
location,
contactInfo,
MDPPermissions.NoChanges,
msg,
appear,
false,
false,
ocspSpec,
crlSpec,
tspSpec);
//Populate a byte array with BLOB data that
//represents the certified document
byte[] outByteArray = signedDoc.MTOM;
//Save the certified PDF document
string fileName = "C:\\Adobe\LoanCertified.pdf";
FileStream fs2 = new FileStream(fileName, FileMode.OpenOrCreate);
//Create a BinaryWriter object
BinaryWriter w = new BinaryWriter(fs2);
w.Write(outByteArray);
w.Close();
fs2.Close();
}
catch (Exception ee)
{
Console.WriteLine(ee.Message);
}
}
}
}
|
|
|