Quick Start (Base64): Determining PDF/A compliancy using the web service API

The following C# code example determines whether the input PDF document is PDF/A-compliant. The input PDF document that is passed to the DocConverter service is named Loan.pdf. Validation results are written to an XML file named ValidationResults.xml. (See Programmatically Determining PDF/A Compliancy.)

/* 
    * Ensure that you create a .NET client assembly that uses  
    * base64 encoding. This is required to populate a BLOB  
    * object with data or retrieve data from a BLOB object. 
    *  
    * For information, see "Invoking LiveCycle using Base64 Encoding"  
    * in Programming with LiveCycle 
    */ 
using System; 
using System.Collections; 
using System.ComponentModel; 
using System.Data; 
using System.IO; 
 
namespace IsDocumentPDFA 
{ 
       class Class1 
       { 
           [STAThread] 
           static void Main(string[] args) 
           { 
               try 
               { 
                   //Create a DocConverterServiceService object 
                   DocConverterServiceService docConverterClient = new DocConverterServiceService(); 
                   docConverterClient.Credentials = new System.Net.NetworkCredential("administrator", "password"); 
 
                   //Reference a PDF file  
                   BLOB inDoc = new BLOB(); 
                   string path = "C:\\Adobe\Loan.pdf"; 
                   FileStream fs = new FileStream(path, FileMode.Open); 
 
                   //Get the file stream length and create a byte array   
                   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.binaryData = ByteArray; 
 
                   //Create a PDFAValidationOptionSpec object and set  
                   //run-time options     
                   PDFAValidationOptionSpec spec = new PDFAValidationOptionSpec(); 
                   spec.compliance = PDFAConversionOptionSpec_Compliance.PDFA_1B; 
                   spec.resultLevel = PDFAValidationOptionSpec_ResultLevel.DETAILED; 
                   spec.ignoreUnusedResource = true; 
 
                   //Determine if the PDF document is PDF/A compliant 
                   PDFAValidationResult result = docConverterClient.isPDFA(inDoc, spec); 
 
                   //Get validation results 
                   BLOB validationResults = result.validationLog; 
 
                   //Get XML data that contains validation results 
                   byte[] outByteArray = validationResults.binaryData; 
                   string FILE_NAME = "C:\\Adobe\ValidationResults.xml"; 
                   FileStream fs2 = new FileStream(FILE_NAME, 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); 
               } 
           } 
       } 
}