Code samples
This guide provides an overview of code samples for redacting sensitive information.
Pattern redaction sample code
The sample code for pattern redaction uses the OpenService
and CloseService
methods from the DocumentConverterServiceClient
sample code:
/// <summary> /// Perform Smart Redaction on the supplied file, writing the result into the target folder /// </summary> /// <param name="ServiceURL">URL endpoint for the PDF Converter service</param> /// <param name="sourceFileName">Source filename</param> /// <param name="targetFolder">Target folder to receive the output file</param> static void SmartRedaction(string ServiceURL, string sourceFileName, string targetFolder) { DocumentConverterServiceClient client = null; try { // Create minimum OpenOptions object OpenOptions openOptions = new OpenOptions(); openOptions.OriginalFileName = Path.GetFileName(sourceFileName);
// Create minimum SmartRedactionSettings SmartRedactionSettings smartRedactionSettings = new SmartRedactionSettings(); smartRedactionSettings = new SmartRedactionSettings(); // Set what needs to be redacted smartRedactionSettings.RedactCreditCardNumbers = BooleanEnum.True; smartRedactionSettings.RedactEmailAddresses = BooleanEnum.True; smartRedactionSettings.RedactPhoneNumbers = BooleanEnum.True;
// Create target folder if required if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } // ** Read the source file into a byte array. byte[] sourceFile = File.ReadAllBytes(sourceFileName);
// ** Open the service and configure the bindings client = OpenService(ServiceURL);
// ** Carry out the conversion. byte[] result = client.SmartRedaction(sourceFile, openOptions, smartRedactionSettings);
// ** Save the results if (result != null) { if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } string filename = Path.GetFileNameWithoutExtension(sourceFileName); string destinationFileName = Path.GetFullPath(Path.Combine(targetFolder, filename + "-redacted.pdf")); using (FileStream fs = File.Create(destinationFileName)) { fs.Write(result, 0, result.Length); fs.Close(); } Console.WriteLine("File converted to " + destinationFileName); }
else { Console.WriteLine("Nothing returned"); } } catch (FaultException<WebServiceFaultException> ex) { Console.WriteLine($"FaultException occurred: ExceptionType: {ex.Detail.ExceptionType.ToString()}"); Console.WriteLine(); Console.WriteLine($"Error Detail: {string.Join(Environment.NewLine, ex.Detail.ExceptionDetails)}"); Console.WriteLine($"Error message: {ex.Message}"); Console.WriteLine(); Console.WriteLine($"Error reason: {ex.Reason}"); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.WriteLine(ex.Data.ToString()); } finally { if (client != null) { CloseService(client);
} }
}
Pattern highlighting sample code
Pattern highlighting identifies specific patterns in a document and visually highlights them without removing the underlying content. This example shows how to implement pattern highlighting using the API:
/// <summary> /// Perform pattern redaction on the supplied file, writing the result into the target folder. /// </summary> /// <param name="ServiceURL">URL endpoint for the PDF Converter service.</param> /// <param name="sourceFileName">Source filename.</param> /// <param name="targetFolder">Target folder to receive the output file.</param> static void PatternRedaction(string ServiceURL, string sourceFileName, string targetFolder) { DocumentConverterServiceClient client = null; try { // Create minimum `OpenOptions` object. OpenOptions openOptions = new OpenOptions(); openOptions.OriginalFileName = Path.GetFileName(sourceFileName);
// Create minimum `PatternHighlightSettings`. PatternHighlightSettings patternHighlightSettings = new PatternHighlightSettings(); // Set the highlight color. patternHighlightSettings.Red = 0; patternHighlightSettings.Green = 0; patternHighlightSettings.Blue = 255; patternHighlightSettings.Alpha = 255; patternHighlightSettings.Pattern = "\"374245455400126\"";
// Create target folder if required. if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } // ** Read the source file into a byte array. byte[] sourceFile = File.ReadAllBytes(sourceFileName);
// ** Open the service and configure the bindings. client = OpenService(ServiceURL);
// ** Carry out the highlighting. byte[] result = client.PatternHighlight(sourceFile, openOptions, patternHighlightSettings);
// ** Save the results. if (result != null) { if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } string filename = Path.GetFileNameWithoutExtension(sourceFileName); string destinationFileName = Path.GetFullPath(Path.Combine(targetFolder, filename + "-highlighted.pdf")); using (FileStream fs = File.Create(destinationFileName)) { fs.Write(result, 0, result.Length); fs.Close(); } Console.WriteLine("File converted to " + destinationFileName); // Open the destination file. ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = destinationFileName; psi.UseShellExecute = true; Process.Start(psi); } else { Console.WriteLine("Nothing returned"); } } catch (FaultException<WebServiceFaultException> ex) { Console.WriteLine($"FaultException occurred: ExceptionType: {ex.Detail.ExceptionType.ToString()}"); Console.WriteLine(); Console.WriteLine($"Error Detail: {string.Join(Environment.NewLine, ex.Detail.ExceptionDetails)}"); Console.WriteLine($"Error message: {ex.Message}"); Console.WriteLine(); Console.WriteLine($"Error reason: {ex.Reason}"); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.WriteLine(ex.Data.ToString()); } finally { if (client != null) { CloseService(client);
} }
}
Smart redaction sample code
The sample code for smart redaction uses the OpenService
and CloseService
methods from the DocumentConverterServiceClient
sample code:
/// <summary> /// Perform Smart Redaction on the supplied file, writing the result into the target folder /// </summary> /// <param name="ServiceURL">URL endpoint for the PDF Converter service</param> /// <param name="sourceFileName">Source filename</param> /// <param name="targetFolder">Target folder to receive the output file</param> static void SmartRedaction(string ServiceURL, string sourceFileName, string targetFolder) { DocumentConverterServiceClient client = null; try { // Create minimum OpenOptions object OpenOptions openOptions = new OpenOptions(); openOptions.OriginalFileName = Path.GetFileName(sourceFileName);
// Create minimum SmartRedactionSettings SmartRedactionSettings smartRedactionSettings = new SmartRedactionSettings(); smartRedactionSettings = new SmartRedactionSettings(); // Set what needs to be redacted smartRedactionSettings.RedactCreditCardNumbers = BooleanEnum.True; smartRedactionSettings.RedactEmailAddresses = BooleanEnum.True; smartRedactionSettings.RedactPhoneNumbers = BooleanEnum.True;
// Create target folder if required if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } // ** Read the source file into a byte array. byte[] sourceFile = File.ReadAllBytes(sourceFileName);
// ** Open the service and configure the bindings client = OpenService(ServiceURL);
// ** Carry out the conversion. byte[] result = client.SmartRedaction(sourceFile, openOptions, smartRedactionSettings);
// ** Save the results if (result != null) { if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } string filename = Path.GetFileNameWithoutExtension(sourceFileName); string destinationFileName = Path.GetFullPath(Path.Combine(targetFolder, filename + "-redacted.pdf")); using (FileStream fs = File.Create(destinationFileName)) { fs.Write(result, 0, result.Length); fs.Close(); } Console.WriteLine("File converted to " + destinationFileName); }
else { Console.WriteLine("Nothing returned"); } } catch (FaultException<WebServiceFaultException> ex) { Console.WriteLine($"FaultException occurred: ExceptionType: {ex.Detail.ExceptionType.ToString()}"); Console.WriteLine(); Console.WriteLine($"Error Detail: {string.Join(Environment.NewLine, ex.Detail.ExceptionDetails)}"); Console.WriteLine($"Error message: {ex.Message}"); Console.WriteLine(); Console.WriteLine($"Error reason: {ex.Reason}"); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.WriteLine(ex.Data.ToString()); } finally { if (client != null) { CloseService(client);
} }
}